使用5行Python代码拆分或合并PDF文件

云课堂学Python 2024-04-14 03:53:31
如果希望从大型 PDF 文件中提取特定页面或将多个 PDF 文件合并为一个文件,可以使用一些 PDF 编辑器来完成,但是你可能会发现拆分或合并功能在很多免费版 PDF 编辑工具中通常不可用。在本文中,我将分享一个简单的解决方案,用几行 Python 代码拆分或合并多个 PDF 文件。 Python 中的 PyPDF3 库提供了读取、合并、写入 pdf 文件的类,方便程序员完成 Pdf 文件的处理操作。 PdfFileReader: 用于执行与读取文件相关的所有操作。PdfFileMerger: 用于将多个 pdf 文件合并在一起。PdfFileWriter: 用于对 pdf 执行写入操作。使用 PyPDF3 处理 Pdf 文件,需要在工作环境中安装此库。 pip install PyPDF3 拆分 PDF 文件想从 PDF 文件中提取特定页面并使其成为单独的 PDF 文件时,可以使用 PdfFileReader 读取原始文件,然后获取特定页面(页码从 0 开始)。使用 PdfFileWriter 的 addPage() 方法将 PDF 页面添加到新的 PDF 中并保存。 下面的示例代码中,从“1.Pdf”提取第一页,并将其存储到一个名为“2.pdf” 的 PDF 文件中。 from PyPDF3 import PdfFileWriter, PdfFileReaderinput_pdf = PdfFileReader("1.pdf")output = PdfFileWriter()output.addPage(input_pdf.getPage(0))with open("2.pdf", "wb") as out: output.write(out)「拓展」 可以使用 getNumPages() 方法,获取 Pdf 中的页码,灵活的进行页面处理。 下面的示例代码中,从“1.Pdf”分别提取偶数页和奇数页,并将其分别存储到“2.pdf”和“3.pdf”中。 from PyPDF3 import PdfFileWriter, PdfFileReaderinput_pdf = PdfFileReader("1.pdf")output2 = PdfFileWriter()output3 = PdfFileWriter()for page in range(input_pdf.getNumPages()): current_page = input_pdf.getPage(page) if page % 2 == 0: output2.addPage(current_page) else: output3.addPage(current_page)with open("2.pdf", "wb") as out: output2.write(out)with open("3.pdf", "wb") as out: output3.write(out)合并 PDF 文件要将多个 PDF 文件合并为一个文件,可以使用 PdfFileMerger 来实现。虽然也可以使用 PdfFileWriter,但是当在合并页面之前不需要编辑页面时,PdfFileMerger 可能更直接。 下面示例代码中,使用 PdfFileMerger 的 append() 方法将多个 PDF 文件合并写入一个名为 merged.pdf 的 PDF 文件中。 from PyPDF3 import PdfFileReader, PdfFileMergerpdf_file1 = PdfFileReader("1.pdf")pdf_file2 = PdfFileReader("2.pdf")output = PdfFileMerger()output.append(pdf_file1)output.append(pdf_file2)with open("3.pdf", "wb") as out: output.write(out)如果不想包含原始文件中的所有页面,可以指定一个具有起始页码和结束页码的元组作为 append() 的页面参数,以便仅将指定的页面添加到新 PDF 文件中。 output.append(pdf_file1, (0, 10)) # 前十页 append() 是在文件最后添加新页面,如果想指定要放入页面的位置,则应使用 merge(),允许指定要添加的页面的位置。
0 阅读:1

云课堂学Python

简介:感谢大家的关注