gpt4 book ai didi

python - 使用 Python 获取 Visio Shape.BoundingBox 方法

转载 作者:太空宇宙 更新时间:2023-11-04 01:03:08 26 4
gpt4 key购买 nike

我正在使用 Python 和 win32com.client 来获取 Microsoft Visio 绘图的页面名称和形状描述。下面的 Python 代码用于获取形状索引、形状名称和形状文本。获取形状边界框的命令因索引无效而失败。

import sys, win32com.client
import copy

def main ():

try:
visio = win32com.client.Dispatch("Visio.Application")
visio.Visible = 0

dwg = visio.Documents.Open("C:\Users\John\Drawing1.vsdx")

# Used by Visio Shape.BoundingBox method
intFlags = 0
visBBoxUprightWH = 0x1

try:

vsoShapes = dwg.Pages.Item(1).Shapes # Get shapes for Visio Page-1

for s in range (len (vsoShapes)):

# This line works
print "Index = %s, Shape = %s, Text = %s" % (vsoShapes[s].Index, vsoShapes[s].Name, vsoShapes[s].Text)

dblLeft =0.0
dblBottom =0.0
dblRight = 0.0
dblTop = 0.0

# ====== This line will fail with invalid syntax =======
vsoShapes.Item(s).BoundingBox intFlags + visBBoxUprightWH, dblLeft, dblBottom, dblRight, dblTop

except Exception, e:
print "Error", e
dwg.Close()
visio.Quit()

except Exception, e:
print "Error opening visio file",e
visio.Quit()

main()

如何从 Python 调用此 Visio 命令

vsoShapes.Item(s).BoundingBox intFlags + visBBoxUprightWH, dblLeft, dblBottom, dblRight, dblTop

Shape.BoundingBox 命令的 Microsoft 文档位于此处:https://msdn.microsoft.com/en-us/library/office/ff766755.aspx

最佳答案

这些 dblLeft、dblBottom、dblRight、dblTop 是类型化的输出参数。分配 0.0 无助于使它们成为这样。试试这个:

dblLeft, dblBottom, dblRight, dblTop = vsoShapes[s].BoundingBox(intFlags+visBBoxUprightWH)

查看一个类似的问题: Python win32 com : how to handle 'out' parameter?

关于python - 使用 Python 获取 Visio Shape.BoundingBox 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31931640/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com