工作需要批量把WORD转换为PDF,网上找了些现成的代码:
from win32com.client import DispatchEx
def createPdf(wordPath, pdfPath):
"""
word转pdf
:param wordPath: word文件路径
:param pdfPath: 生成pdf文件路径
"""
word = DispatchEx('Word.Application')
# word = gencache.EnsureDispatch("Word.Application")
doc = word.Documents.Open(wordPath, ReadOnly=1)
# doc.SaveAs(pdfPath, FileFormat=17)
# doc.Close()
# word.Quit()
doc.AcceptAllRevisions()
doc.ExportAsFixedFormat(pdfPath,
17,
#constants.wdExportFormatPDF, # 值 "X"
#Item=constants.wdExportDocumentWithMarkup, # 值为7
#Item=constants.wdExportDocumentContent, # 值为0
Item=0,
#CreateBookmarks=constants.wdExportCreateHeadingBookmarks
CreateBookmarks=1)
#word.Quit(constants.wdDoNotSaveChangeswdDoNotSaveChanges)
word.Quit(0)
doc.AcceptAllRevisions() 接受所有的修订,保证输出的PDF
是最终状态。
用pyinstaller 打包为EXE 枚举(如 :constants.wdExportDocumentWithMarkup) 等会找不到,运行exe的时候会报错。
所以直接赋值,就不会出现EXE执行不了的问题。