翼度科技»论坛 编程开发 python 查看内容

多个word转化成PDF文件后再合并成一个PDF文件

4

主题

4

帖子

12

积分

新手上路

Rank: 1

积分
12
多个word 文档 转化成 PDF 文件, 最后合并成一个PDF文件
  1. import os
  2. from win32com import client
  3. from PyPDF2 import PdfMerger  # 使用PdfMerger
  4. def wordToPdf(folder):  # 将 多个word 文档 转化成 PDF 文件
  5.     os.chdir(folder)
  6.     file_type = 'docx'
  7.     out_folder = folder + "\\PDF"
  8.     if not os.path.exists(out_folder):
  9.         print('Creating output folder...')
  10.         os.makedirs(out_folder)
  11.         print(out_folder, 'created.')
  12.     else:
  13.         print(out_folder, 'already exists.\n')
  14.     # print(os.listdir("."))
  15.     # exit()
  16.     try:
  17.         for files in os.listdir("."):
  18.             if files.endswith(".docx"):
  19.                 out_name = files.replace(file_type, r"pdf")
  20.                 in_file = os.path.abspath(folder + "\" + files)
  21.                 out_file = os.path.abspath(out_folder + "\" + out_name)
  22.                 print(in_file, 'Exporting', out_file, "\n\n")
  23.                 word = client.DispatchEx("Word.Application")
  24.                 word.Visible = 0  # 后台运行
  25.                 word.DisplayAlerts = 0  # 不显示,不警告
  26.                 doc = word.Documents.Open(in_file, Encoding='gbk')
  27.                 doc.SaveAs(out_file, FileFormat=17)
  28.                 doc.Close()
  29.                 word.Quit()
  30. except Exception as e:
  31.         print("出错了!", e)
  32. def mergePDF(folder):  # 将多个 PDF 文件,合并成一个PDF文件
  33.     # 设置文件所在位置
  34.     target_path = folder + "\\PDF"  # pdf文件所在文件夹绝对路径
  35.     pdf_lst = [f for f in os.listdir(target_path) if f.endswith('.pdf')]
  36.     pdf_lst = [os.path.join(target_path, filename) for filename in pdf_lst]
  37.     os.chdir(target_path)
  38.     out_folder = target_path + "\\MPDF"
  39.     if not os.path.exists(out_folder):
  40.         print('Creating output folder...')
  41.         os.makedirs(out_folder)
  42.         print(out_folder, 'created.')
  43.     else:
  44.         print(out_folder, 'already exists.\n')
  45.    
  46.     # 调用合并方法
  47.     file_merger = PdfMerger()  # 调用
  48.     for pdf in pdf_lst:
  49.         file_merger.append(pdf)  # 合并pdf文件
  50.     # 选择合并后文件存储位置
  51.     out_name = "MergePDF.pdf"
  52.     out_file = os.path.abspath(out_folder + "\" + out_name)
  53.     file_merger.write(out_file)  # 合并后文件所在位置
  54.     print("合并完成")
  55. if __name__ == '__main__':
  56.     folder = r"J:\1_7"
  57.     wordToPdf(folder)
  58.     mergePDF(folder)
复制代码
来源:https://www.cnblogs.com/HeroZhang/p/17679404.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具