python合并pdf文件

1. 思路分析:

合并指定目录下所有pd文件,分析思路如流程图

2.使用的库与代码

1.PyPDF2: 主要能够拆分、合并、裁剪和转换PDF文件的页面。它还可以向PDF文件添加自定义数据、查看选项和密码。

2.os库,这里主要用于遍历指定目录下的文件夹和文件

3.代码

"""
====================================================================
Filename :    merge_pdf_files.py
Description : Merge multiple pdf files
Solution:
          1 use os.walk get names of pdf files.
          2 use PyPDF2 to merge pdf files
Copyright :  2022 wangdada
Revision :   $Revision:$

====================================================================
History :    @SQELog:$
v1.0 Initial version.
====================================================================
"""
from PyPDF2 import PdfFileReader, PdfFileWriter
import os



class merge_pdf:
    """
    Merge multiple pdf files
    """
    def __init__(self, pdf_files_dir: str, output_dir: str):
        '''
        description: inition
        :param pdf_files_dir: path of pdf files or full path of pdf file
        :param output_dir: full path of output's result
        '''
        self.pdf_files_dir = pdf_files_dir
        self.output_dir = output_dir
        self.fileName_list = []

    def get_fileName_list(self):
        """
        description: get names of pdf files
        :return: none
        """
        for root, dirs, files in os.walk(self.pdf_files_dir):
            for name in files:
                if '.pdf' in name:
                    self.fileName_list.append((os.path.join(root, name)))

    def mergePdf(self):
        """
        description:merge pdf files
        :return: none
        """
        pdfFileWrite = PdfFileWriter()
        for file in self.fileName_list:
            pdfReader = PdfFileReader(open(file, 'rb'))
            numPages = pdfReader.getNumPages()
            for index in range(0, numPages):
                pageObj = pdfReader.getPage(index)
                pdfFileWrite.addPage(pageObj)
            pdfFileWrite.write(open(self.output_dir, 'wb'))


if __name__ == '__main__':
#这里需要填写要合并的pdf所在目录,注意最后一个\需要转义,所以有两个\\
    pdf_file_dir = r"D:\wang\task\测试文档整理\数据\文档\03_AUTOSAR需求\AutoSAR标准协议\Diag\\"
#这里输入最后合并出来的pdf的全局路径
    output_dir = r"D:\wang\task\测试文档整理\数据\test\combile_pdf.pdf"
    mergePdf = merge_pdf(pdf_file_dir, output_dir)
    mergePdf.get_fileName_list()
    mergePdf.mergePdf()

4.注意事项

1.第一个输入:填写要合并的pdf所在目录需要注意,填写时最后有两个斜杠(一个用于转义),该代码会合并所给目录下的所有pdf文件,顺序文章开头已给出。

2.第二个输入:填写结果文件为全局路径, 最后的.pdf别忘了

5.运行结果演示

1.由输入:

pdf_file_dir = r"D:\wang\task\测试文档整理\数据\文档\03_AUTOSAR需求\AutoSAR标准协议\Diag\\"
output_dir = r"D:\wang\task\测试文档整理\数据\test\combile_pdf.pdf"

2.在上面路径查看:

合并前:

合并后:

最后,感谢阅读,原创不易,转载请标明来源!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值