import docx import os from docx2pdf import convert from glob import glob from PyPDF2 import PdfMerger from win32com import client as wc #doc转docx def doc2docx(filepath): #将doc文件另存为docx文件 word = wc.Dispatch("Word.Application") docx_file = os.path.join(inputdir, f.replace(".doc", ".docx")) # f.replace并不会改变f变量 doc = word.Documents.Open(os.path.join(inputdir, f)) doc.SaveAs(dest_file, 12) #12是docx文件格式 doc.Close() word.Quit() def docx2pdf(filepath): #传入完整的docx路径并转为PDF out_filepath = filepath.replace('.docx','.pdf') #在docx的基础上生成同名PDF文档 f1 = open(out_filepath,'w') #新建pdf后关闭文件 f1.close() convert(filepath,out_filepath)#将docx文档转为pdf print(os.path.basename(filepath) + "已转为PDF") inputdir= r"E:\Desktop\test" #在这里传入文件所在文档 outdir = r"E:\Desktop\test" #在这里修改合并后PDF文件输出位置 filelist = os.listdir(inputdir) #取出文件名字列表 filemerge = PdfMerger() for f in filelist: if f.endswith(".doc"): doc2docx(os.path.join(inputdir, f)) #将doc文件转存为docx文件 docx2pdf(os.path.join(inputdir, f.replace(".doc", ".docx"))) #调用函数,将docx文件转为pdf文件 os.remove(os.path.join(inputdir, f.replace(".doc", ".docx")))#将临时生成的docx文件删除掉 elif f.endswith(".docx"): docx2pdf(os.path.join(inputdir, f)) #调用函数,将docx文件转为pdf文件 pdflist = glob(os.path.join(inputdir, '*.pdf')) filemerge = PdfMerger() for f in pdflist: filemerge.append(f,import_outline= False) filemerge.write(os.path.join(outdir, 'merge.pdf')) print("已将文件夹中doc、docx、pdf格式文件合并成PDF,并放在原文件目录下")
Python批量将多种格式文件合并成一个PDF文件
最新推荐文章于 2024-09-17 13:39:00 发布