作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用 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(内部版本 219)
有人知道为什么它不起作用吗?
最佳答案
有几个很好的库可以处理这个任务:
还有一个例子是做exactly this在这个 ActiveState 食谱中 Convert Microsoft Word files to PDF with DOCXtoPDF
如果您坚持使用Windows API,那么在这个秘诀Convert doc and docx files to pdf 中还有一个通过win32com
执行此操作的示例。
您也可以使用 comtypes
来做到这一点(感谢 .doc to pdf using python)
示例:
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()
关于python - Pywin32 将 .docx 保存为 pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30481136/
我正在尝试检查 PyWin 在 Excel 的 COM 接口(interface)中返回的数据是否属于“时间”类型。 这是不起作用的代码: from win32com.client import Di
我在 Win32 上使用 Python 与 OneNote 的 COM 互操作进行交互。 下面是提取笔记本层次结构的最基本代码: import win32com.client onObj = win3
我是一名优秀的程序员,十分优秀!