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

2024-06-26 13:08:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我想创建一个打开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),但都没有用——我不知道如何保存到手动“SaveAs”可用的其他文件类型

编辑:我还需要知道如何在页面中导航(获取页面列表并在页面中迭代并保存到svg文件),以及(令人羞耻的)如何在导出文件后正确关闭文件


Tags: 文件topathsvgtest脚本clientdoc
2条回答

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

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

// (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:”前缀的元素即可

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

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

相关问题 更多 >