验证过ppt也可以合并成pdf文件,确实很高效,什么pdf转换器的再也不用了~
需要下载模块pywin32,程序中导入模块为win32com。
# -*- coding:utf-8 -*- import os from win32com.client import Dispatch,DispatchEx from win32com.client import constants from win32com.client import gencache import re def getfilenames(filepath=‘‘,filelist_out=[],file_ext=‘all‘): for fpath, dirs, fs in os.walk(filepath): for f in fs: fi_d = os.path.join(fpath, f) if file_ext == ‘.doc‘: if os.path.splitext(fi_d)[1] in [‘.doc‘,‘.docx‘]: filelist_out.append(re.sub(r‘\\‘,‘/‘,fi_d)) else: if file_ext == ‘all‘: filelist_out.append(fi_d) elif os.path.splitext(fi_d)[1] == file_ext: filelist_out.append(fi_d) else: pass filelist_out.sort() return filelist_out # Word to PDF def wordtopdf(filelist,targetpath): valueList = [] try: gencache.EnsureModule(‘{00020905-0000-0000-C000-000000000046}‘, 0, 8, 4) # 开始转换 w = Dispatch("Word.Application") for fullfilename in filelist: (filepath,filename) = os.path.split(fullfilename) # 分割文件路径和文件名 softfilename = os.path.splitext(filename) # 分割文件名和扩展名 os.chdir(filepath) doc = os.path.abspath(filename) os.chdir(targetpath) pdfname = softfilename[0] + ".pdf" output = os.path.abspath(pdfname) pdf_name = output try: doc = w.Documents.Open(doc, ReadOnly=1) doc.ExportAsFixedFormat(output, constants.wdExportFormatPDF, Item=constants.wdExportDocumentWithMarkup, CreateBookmarks=constants.wdExportCreateHeadingBookmarks) except Exception as e: print(e) if os.path.isfile(pdf_name): valueList.append(pdf_name) else: print(‘转换失败!‘) return False w.Quit(constants.wdDoNotSaveChanges) return valueList except TypeError as e: print(‘出错了!‘) print(e) return False if __name__ == ‘__main__‘: sourcepath = r"E:/xxx/xxx" # 指定源路径(Word文档所在路径) targetpath = r"E:/xxx/xxx/pdf/" # 指定目标路径(PDF保存路径) filelist = getfilenames(sourcepath,[],‘.doc‘) # 获取Word文档路径 valueList = wordtopdf(filelist,targetpath) # 实现将Word文档批量转换为PDF if valueList: print("转换成功") else: print("没有要转换的Word文档或者转换失败!请检查!")
原文:https://www.cnblogs.com/hqczsh/p/12811683.html