【问题标题】:Python and Visio 365: automated saving to .svgPython 和 Visio 365:自动保存到 .svg
【发布时间】:2020-03-11 14:21:05
【问题描述】:

我想创建一个脚本来打开 Visio 文件 (.vsd),将其保存为 vsdx、pdf 和 svg(vsd 的每一页都是单独的文件),关闭文件,打开下一个文件,直到文件结束。

到目前为止,我成功地将其保存为 .pdf,使用:Python Visio to pdf

import win32com.client

#change later to dynamic current path
path= r"C:/automation_visio/"

visio = win32com.client.Dispatch("Visio.Application")
doc = visio.Documents.Open(path+'test.vsd')
doc.ExportAsFixedFormat( 1, path+'test.pdf', 1, 0 ) #exports as pdf only XD

我查看了很多地方(最相关:https://docs.microsoft.com/en-us/office/vba/api/visio.document.saveas)但无济于事 - 我不知道如何保存到手动“SaveAs”可用的其他文件类型。

编辑:我还需要知道如何浏览页面(获取页面列表并遍历它们并保存到 svg 文件)以及(可耻地)如何在导出文件后正确关闭文件。

【问题讨论】:

    标签: python visio


    【解决方案1】:

    您需要使用page.Export 方法而不是ExportAsFixedFormat。只需为目标文件添加 .svg 扩展名,就可以开始了。

    顺便说一句,我有一个 Visio 加载项(检查配置文件),它向导出添加了一些有用的东西,例如连接、属性等,以便在 JavaScript 中使用。它也可以通过编程方式调用。

    【讨论】:

    • 不错。谢谢你。还有一件事,如何获取页面列表以便我可以遍历它们?
    • 好吧,document.Pages ?
    • tnx,我会测试一下
    【解决方案2】:

    我想补充一点,从 Visio 导出 SVG 有两个选项。通常,Visio 会添加一堆额外的数据,例如用户定义的单元格、图层和形状数据字段。如果您想针对导出进行编程,或者在将来某个时间重新导入到 Visio,这可能会很有用。

    但是,如果您想要小而干净的 SVG,您就不会想要所有这些额外的东西。因此,您可以摆弄 Visio.Application.ApplicationSettings.SVGExportFormat,将其设置为以下之一:

    // (0) Include both SVG elements and Visio elements. This is the default.    
    Visio.VisSVGExportFormat.visSVGIncludeVisioElements 
    
    // (1) Include SVG elements only. 
    Visio.VisSVGExportFormat.visSVGExcludeVisioElements 
    

    添加到 SVG 导出的额外 Visio 信息很容易找到,只需查找带有“v:”前缀的元素。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 2023-04-09
      • 2014-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多