Pywin32将.docx保存为pdf

我使用的Word 2013自动创建一个报告为docx,然后将其保存为PDF格式。

但是,当我调用SaveAs2()函数时,脚本弹出“另存为”窗口并引发此异常:

(-2147352567, 'Exception occurred.', (0, u'Microsoft Word', u'Command failed', u'wdmain11.chm', 36966, -2146824090), None)

这是我的代码打开并保存为一个新文件:

self.path = os.path.abspath(path)

self.wordApp = win32.Dispatch('Word.Application')  #create a word application object
self.wordApp.Visible = False  # if false hide the word application (app does't open but still usable)

self.document = self.wordApp.Documents.Open(self.path + "/" + documentRef)  # opening the template file



absFileName = "D:test.pdf"
        self.document.SaveAs2(FileName=absFileName,FileFormat=17)

我用python2.7和pywin32(build 219)

有人知道为什么它不起作用吗?


有几个很好的库来处理这个任务:

  • 蟒蛇,DOCX
  • xtopdf
  • 还有一个在ActiveState Recipe中完成此操作的示例使用DOCXtoPDF将Microsoft Word文件转换为PDF


    如果你坚持使用Windows API(s), win32com在这个配方中也有一个通过win32com来做到这一点的例子。将doc和docx文件转换为pdf


    你也可以使用comtypes来做到这comtypes (感谢使用Python的.doc到pdf)

    例:

    import os
    import sys
    
    
    import comtypes.client
    
    
    wdFormatPDF = 17
    
    
    def covx_to_pdf(infile, outfile):
        """Convert a Word .docx to PDF"""
    
        word = comtypes.client.CreateObject('Word.Application')
        doc = word.Documents.Open(infile)
        doc.SaveAs(outfile, FileFormat=wdFormatPDF)
        doc.Close()
        word.Quit()
    
    链接地址: http://www.djcxy.com/p/26719.html

    上一篇: Pywin32 save .docx as pdf

    下一篇: Functions inside constructor vs prototype