【发布时间】:2015-09-02 00:54:56
【问题描述】:
我正在使用带有 win32com.client 的 Python 2.7,并试图弄清楚如何更改 Microsoft Visio 2013 形状的字体名称和颜色。
下面的代码在已打开的 Visio 文档上创建一个矩形。这段代码可以正常工作,并且可以毫无问题地设置形状颜色、文本和线宽。
import sys, win32com.client
visio = win32com.client.Dispatch("Visio.Application")
vsoShape1 = visio.ActivePage.DrawRectangle(1,1,2,2)
vsoShape1.Cells("LineColor").FormulaU = 0
vsoShape1.Cells("LineWeight").FormulaU = "2.0 pt"
vsoShape1.FillStyle = "None"
vsoShape1.Text = "This is a test"
vsoShape1.Cells("Char.size").FormulaU = "20 pt"
尝试了不同的方法来更改导致错误消息的字体名称和字体颜色。
这两行代码都会导致以下错误消息:pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, u'Drawing4 - Visio Standard', u'\n\nUnexpected end of file。 ', 无, 0, -2032466967), 无)
vsoShape1.Cells("Font.Name").FormulaU = "Courier"
vsoShape1.Cells("Font.Bold").FormulaU = "True"
接下来的三行代码都导致了类似的错误消息,但没有文件结尾错误:pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, u'Drawing4 - Visio Standard', u' \n\nNAME?', 无, 0, -2032466907), 无)
vsoShape1.Cells("Char.Font").FormulaU = "Courier"
vsoShape1.Cells("Char.colorIndex").FormulaU = 16
vsoShape1.Cells("Font.Bold").FormulaU = 0
多试几次,结果:DrawRectangle.xxxxx 无法设置。
vsoShape1.fontName = "Courier"
vsoShape1.Bold = True
vsoShape1.Bold = 1
【问题讨论】:
-
发布后我确实发现了一个关于在 Excel 中更改字体颜色的类似问题,但没有看到任何其他关于更改字体名称的问题。 stackoverflow.com/questions/31708983/…