【问题标题】:Get Visio Shape.BoundingBox method with Python使用 Python 获取 Visio Shape.BoundingBox 方法
【发布时间】:2015-08-11 01:12:59
【问题描述】:

我正在使用 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

【问题讨论】:

    标签: python visio


    【解决方案1】:

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

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

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

    【讨论】:

    • 好电话。我没有注意到它们是参数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 2022-01-25
    • 1970-01-01
    • 2019-06-08
    • 1970-01-01
    • 1970-01-01
    • 2014-06-25
    相关资源
    最近更新 更多