前言:
如今你们对“如何用python将pdf文件批量转换成word”大体比较关怀,小伙伴们都需要学习一些“如何用python将pdf文件批量转换成word”的相关知识。那么小编同时在网上收集了一些有关“如何用python将pdf文件批量转换成word””的相关资讯,希望我们能喜欢,咱们快快来了解一下吧!# -*- 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 def wordtopdf(filelist,targetpath,digit): valueList = [] try: gencache.EnsureModule('{00020905-0000-0000-C000-000000000046}', 0, 8, 4) # 开始转换 w = Dispatch("Word.Application") for index,fullfilename in enumerate(filelist): (filepath,filename) = os.path.split(fullfilename) # 分割文件路径和文件名,其中,filepath表示文件路径;filename表示文件名 softfilename = os.path.splitext(filename) # 分割文件名和扩展名 os.chdir(filepath) doc = os.path.abspath(filename) os.chdir(targetpath) pdfname = str(index).zfill(digit) + ".pdf" output = os.path.abspath(pdfname) pdf_name = output # 文档路径需要为绝对路径,因为Word启动后当前路径不是调用脚本时的当前路径。 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 Falseif __name__ == '__main__': sourcepath = r"E:/learn/test/doc/temp" targetpath = r"E:/learn/test/doc/pdf/" filelist = getfilenames(sourcepath,[],'.doc') valueList = wordtopdf(filelist,targetpath,4) if valueList: print("转换成功") else: print("没有要转换的Word文档或者转换失败!")
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。