Python 将 Visio 转为 PDF

2 投票
1 回答
3175 浏览
提问于 2025-04-18 05:47

我正在尝试用Python把一堆Visio文件转换成PDF。我参考了这个用Python把.doc转换成pdf的内容,并写了以下代码:

import comtypes.client as coms

format=17    
visio = coms.CreateObject('Visio.Application')
doc = visio.Documents.Open('map.vsd')
doc.SaveAs('map.pdf', FileFormat=format)

结果出现了一个错误:TypeError: call takes exactly 2 arguments (3 given)

我在网上搜索了很久,但找不到关于如何用Python在Visio中打印成PDF的相关资料。

1 个回答

3

你应该使用 ExportAsFixedFormat 而不是 SaveAs。关于这个功能的详细说明,你可以在 这里 找到。这个功能可以在 win32 和 comtypes 中使用。

win32com 示例

import win32com.client
visio = win32com.client.Dispatch("Visio.Application")
doc = visio.Documents.Open('map.vsd')
doc.ExportAsFixedFormat( 1, 'map.pdf', 1, 0 )

comtypes 示例

import comtypes.client as coms
visio = coms.CreateObject('Visio.Application')
doc = visio.Documents.Open('map.vsd')
doc.ExportAsFixedFormat( 1, 'map.pdf', 1, 0 )

撰写回答