多个word转化成PDF文件后再合并成一个PDF文件
  ByFxmCfmXpsu 2023年11月02日 93 0

多个word 文档 转化成 PDF 文件, 最后合并成一个PDF文件

import os
from win32com import client
from PyPDF2 import PdfMerger  # 使用PdfMerger


def wordToPdf(folder):  # 将 多个word 文档 转化成 PDF 文件
    os.chdir(folder)
    file_type = 'docx'
    out_folder = folder + "\\PDF"
    if not os.path.exists(out_folder):
        print('Creating output folder...')
        os.makedirs(out_folder)
        print(out_folder, 'created.')
    else:
        print(out_folder, 'already exists.\n')
    # print(os.listdir("."))
    # exit()
    try:
        for files in os.listdir("."):
            if files.endswith(".docx"):
                out_name = files.replace(file_type, r"pdf")
                in_file = os.path.abspath(folder + "\\" + files)
                out_file = os.path.abspath(out_folder + "\\" + out_name)
                print(in_file, 'Exporting', out_file, "\n\n")
                word = client.DispatchEx("Word.Application")
                word.Visible = 0  # 后台运行
                word.DisplayAlerts = 0  # 不显示,不警告
                doc = word.Documents.Open(in_file, Encoding='gbk')
                doc.SaveAs(out_file, FileFormat=17)
                doc.Close()
                word.Quit()
except Exception as e:
        print("出错了!", e)


def mergePDF(folder):  # 将多个 PDF 文件,合并成一个PDF文件
    # 设置文件所在位置
    target_path = folder + "\\PDF"  # pdf文件所在文件夹绝对路径
    pdf_lst = [f for f in os.listdir(target_path) if f.endswith('.pdf')]
    pdf_lst = [os.path.join(target_path, filename) for filename in pdf_lst]

    os.chdir(target_path)
    out_folder = target_path + "\\MPDF"
    if not os.path.exists(out_folder):
        print('Creating output folder...')
        os.makedirs(out_folder)
        print(out_folder, 'created.')
    else:
        print(out_folder, 'already exists.\n')
    
    # 调用合并方法
    file_merger = PdfMerger()  # 调用
    for pdf in pdf_lst:
        file_merger.append(pdf)  # 合并pdf文件
    # 选择合并后文件存储位置
    out_name = "MergePDF.pdf"
    out_file = os.path.abspath(out_folder + "\\" + out_name)
    file_merger.write(out_file)  # 合并后文件所在位置
    print("合并完成")

if __name__ == '__main__':
    folder = r"J:\1_7"
    wordToPdf(folder)
    mergePDF(folder)
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  2Fnpj8K6xSCR   2024年05月17日   80   0   0 Python
  xKQN3Agd2ZMK   2024年05月17日   65   0   0 Python
  fwjWaDlWXE4h   2024年05月17日   31   0   0 Python
  YpHJ7ITmccOD   2024年05月17日   34   0   0 Python
ByFxmCfmXpsu