在工作中,我们经常需要把Word转换为PDF。数量少还可以一个一个去保存;但在工作中经常是一次性需要几十个转换,一个一个去转换就太麻烦了;目前Python自动化办公还是很热门的,网上课程也是非常多,于是就想着用Python来实现。
1
环境准备
python3
pywin32office2007及以上
原理:使用Python win32 库 调用Word底层vba,将Word转成PDF。
2
Python代码
from win32com.client import gencachefrom win32com.client import constants, gencacheimport os#创建PDFdef createPdf(wordPath, pdfPath): """ word转pdf :param wordPath: word文件路径 :param pdfPath: 生成pdf文件路径 """ word = gencache.EnsureDispatch('Word.Application') doc = word.Documents.Open(wordPath, ReadOnly=1) doc.ExportAsFixedFormat(pdfPath, constants.wdExportFormatPDF, Item=constants.wdExportDocumentWithMarkup, CreateBookmarks=constants.wdExportCreateHeadingBookmarks) word.Quit(constants.wdDoNotSaveChanges)#遍历当前目录,并把Word文件转换为PDFdef wordToPdf(): print("转换中...") # 获取当前运行路径 path = os.getcwd() # 获取所有文件名的列表 filename_list = os.listdir(path) # 获取所有word文件名列表 wordname_list = [filename for filename in filename_list \ if filename.endswith((".doc", ".docx"))] for wordname in wordname_list: # 分离word文件名称和后缀,转化为pdf名称 pdfname = os.path.splitext(wordname)[0] + '.pdf' # 如果当前word文件对应的pdf文件存在,则不转化 if pdfname in filename_list: continue # 拼接 路径和文件名 wordpath = os.path.join(path, wordname) pdfpath = os.path.join(path, pdfname) createPdf(wordpath,pdfpath)#word转pdfif __name__ == '__main__': wordToPdf()
3
使用方法
把Py文件放入Word文档的目录中,点击运行Py文件就会自动转换。当然了也可以用PyInstaller打包为exe文件,这样就不用安装Python环境,并且可以多平台使用。
好了,今天就分享到这边,大家有什么想法,欢迎给我留言讨论。觉得有用的,点击下{在看}。