Python和Visio 365:自动保存到.svg

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

到目前为止,我成功使用Python Visio to pdf

将其保存为.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),但无济于事-我不知道如何将其保存为手动“另存为”可用的其他文件类型。

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

ttdrhfiaid 回答:Python和Visio 365:自动保存到.svg

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

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

,

我想补充一点,从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:”前缀的元素即可。

本文链接:https://www.f2er.com/2664060.html

大家都在问