【问题标题】:Python Visio to pdfPython Visio 到 pdf
【发布时间】:2014-06-25 09:23:00
【问题描述】:

我正在尝试在 python 中将一堆 Visio 文件转换为 pdf。我引用了这个.doc to pdf using python 并编写了以下代码:

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)

我一直在谷歌搜索,但找不到有关如何在 Visio 中使用 python 打印为 pdf 的参考。

【问题讨论】:

    标签: python pdf visio comtypes


    【解决方案1】:

    您应该使用ExportAsFixedFormat 而不是SaveAs。这个函数的文档你可以找到here。这个函数可以和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 )
    

    【讨论】:

    • .vsdx 格式和 Visio 2016 对此是否有任何更新?使用该文件格式运行此代码时出现错误。具体来说,我得到“(-2032466859, None, ('\n\nThis file name is not valid.', 'Visio Professional', None, 0, None))"。
    • 我收到此错误 - Arguments: (com_error(-2147221005, 'Invalid class string', None, None),)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多