用Python处理PDF:拆分与合并PDF文档

蔚落 2024-05-01 02:46 209阅读 0赞

PDF文档在信息共享和数据保存方面被广泛使用,处理PDF文档也成为常见需求。其中,合并和拆分PDF文档能够帮助我们更有效地管理PDF文档,使文档内容分布更合理。通过合并,可以将相关文档整合成一个文件,以便更好地组织和提供信息;而通过拆分,可以将大型PDF文件分割成易于管理的较小文件,方便我们更容易地访问所需范围的信息。利用Python,我们可以高效地完成这些任务。本文将介绍如何使用Python来管理PDF文档,包括合并和分割操作的实现方法。

文章目录

    • 使用 MergeFiles() 方法合并PDF文档
    • 通过复制内容合并PDF文档
    • 合并PDF文档的选定页面
    • 将PDF文档拆分为单页文档
    • 按页面范围分割PDF文档

本文所介绍的PDF文档操作方法需要用到Spire.PDF for Python,可从官网下载或通过PyPI(pip install Spire.PDF)安装。

使用 MergeFiles() 方法合并PDF文档

PdfDocument 类代表PDF文档。 在该类中,MergeFiles() 方法可用于直接将多个PDF文档合并为一个文档,方法的参数是文件路径列表。 具体实现过程如下:

  1. 创建PDF文件路径列表。
  2. 使用 PdfDocument.MergeFiles() 方法合并 =PDF 文档。
  3. 使用 PdfDocument.SaveToFile() 方法将合并后的文档保存为新的 PDF 文档。

代码示例:

  1. from spire.pdf.common import *
  2. from spire.pdf import *
  3. # 创建一个PDF文件路径的列表
  4. inputFile1 = "Sample1.pdf"
  5. inputFile2 = "Sample2.pdf"
  6. inputFile3 = "Sample3.pdf"
  7. files = [inputFile1, inputFile2, inputFile3]
  8. # 合并PDF文档
  9. pdf = PdfDocument.MergeFiles(files)
  10. # 保存结果文档
  11. pdf.Save("output/合并PDF.pdf", FileFormat.PDF)
  12. pdf.Close()

合并效果
合并PDF文档

通过复制内容合并PDF文档

使用 PdfDocument.AppendPage(PdfDocument) 方法,还可以将一个PDF文件中的页面复制到另一个PDF文件中,从而完成PDF文件的合并。 具体步骤如下:

  1. 创建PDF文件路径列表。
  2. 载入每个PDF文档为 PdfDocument 类的对象,并添加到一个列表中。
  3. 创建一个新的 PdfDocument 类的对象。
  4. 循环遍历每个加载的 PDF 文档,使用 PdfDocument.appendPage() 方法将每个PDF文档的页面插入到新的PDF文档中。
  5. 使用 PdfDocument.SaveToFile() 方法保存新的 PDF 文档。

代码示例:

  1. from spire.pdf.common import *
  2. from spire.pdf import *
  3. # 创建 PDF 文件路径列表
  4. file1 = "Sample1.pdf"
  5. file2 = "Sample2.pdf"
  6. file3 = "Sample3.pdf"
  7. files = [file1, file2, file3]
  8. # 加载每个 PDF 文件为 PdfDocument 对象并添加到列表中
  9. pdfs = []
  10. for file in files:
  11. pdfs.append(PdfDocument(file))
  12. # 创建一个 PdfDocument 对象
  13. newPdf = PdfDocument()
  14. # 将加载的 PDF 文档的页面插入到新的 PDF 文档中
  15. for pdf in pdfs:
  16. newPdf.AppendPage(pdf)
  17. # 保存新的 PDF 文档
  18. newPdf.SaveToFile("output/复制页面合并PDF.pdf")
  19. newPdf.Close()

合并效果
通过复制页面合并PDF文档

合并PDF文档的选定页面

我们还可以使用 PdfDocument.InsertPage()PdfDocument.InsertPageRange() 方法从一个PDF文档中选择页面和插入到另一个PDF文档中,从而实现对指定PDF页面的合并。 具体步骤如下:

  1. 创建PDF文件路径列表。
  2. 载入每个PDF文档为 PdfDocument 类的对象,并添加到一个列表中。
  3. 创建一个新的 PdfDocument 类的对象。
  4. 使用 PdfDocument.InsertPage(PdfDocument, pageIndex: int)PdfDocument.InsertPageRange(PdfDocument, startIndex: int, endIndex: int) 方法将已加载文档的指定页面插入到新的PDF文档中。
  5. 使用 PdfDocument.SaveToFile() 方法保存新的PDF文档。

代码示例:

  1. from spire.pdf import *
  2. from spire.pdf.common import *
  3. # 创建 PDF 文件路径列表
  4. file1 = "Sample1.pdf"
  5. file2 = "Sample2.pdf"
  6. file3 = "Sample3.pdf"
  7. files = [file1, file2, file3]
  8. # 加载每个 PDF 文件为 PdfDocument 对象并添加到列表中
  9. pdfs = []
  10. for file in files:
  11. pdfs.append(PdfDocument(file))
  12. # 创建一个 PdfDocument 对象
  13. newPdf = PdfDocument()
  14. # 从加载的 PDF 文档中选择指定页插入到新的文档中
  15. newPdf.InsertPage(pdfs[0], 0)
  16. newPdf.InsertPage(pdfs[1], 2)
  17. newPdf.InsertPageRange(pdfs[2], 0, 1)
  18. # 保存新的 PDF 文档
  19. newPdf.SaveToFile("output/选择页面合并PDF.pdf")
  20. newPdf.Close()

合并效果
合并PDF指定页面

将PDF文档拆分为单页文档

PdfDocument.Split(PdfDocument) 方法可用于将多页PDF文档分割成多个单页PDF文件。 具体步骤如下:

  1. 创建一个 PdfDocument 类的对象,并使用 PdfDocument.LoadFromFile() 方法加载PDF文件。
  2. 使用 PdfDocument.Split() 方法将文档分割成多个单页PDF文件。

代码示例:

  1. from spire.pdf.common import *
  2. from spire.pdf import *
  3. # 创建一个 PdfDocument 对象
  4. doc = PdfDocument()
  5. # 加载 PDF 文件
  6. doc.LoadFromFile("output/合并PDF.pdf")
  7. # 将 PDF 文件拆分为多个单页的 PDF 文件
  8. doc.Split("Output/PDF/拆分PDF-{0}.pdf", 1)
  9. doc.Close()

拆分效果
将PDF拆分为单页PDF

按页面范围分割PDF文档

要按页面范围将PDF文件分割成两个或多个PDF文件,需要先创建两个或多个新的PDF文件,然后将源PDF中的特定页面或页面范围导入到新创建的PDF文件中。 以下是详细步骤:

  1. 创建一个 PdfDocument 类对象,并使用 PdfDocument.LoadFromFile() 方法加载PDF文件。
  2. 创建另外三个 PdfDocument 对象。
  3. 使用 PdfDocument.InsertPage() 方法从源文件中导入第一页到第一个文档中。
  4. 使用 PdfDocument.InsertPageRange() 方法从源文件中导入第 2-4 页到第二个文档中。
  5. 使用 PdfDocument.InsertPageRange() 方法将源文件中的其余页面导入到第三个文档中。
  6. 使用 PdfDocument.SaveToFile() 方法保存三个文档。

代码示例:

  1. from spire.pdf.common import *
  2. from spire.pdf import *
  3. # 创建一个 PdfDocument 对象
  4. doc = PdfDocument()
  5. # 加载 PDF 文件
  6. doc.LoadFromFile("output/合并PDF.pdf")
  7. # 创建三个 PdfDocument 对象
  8. newDoc_1 = PdfDocument()
  9. newDoc_2 = PdfDocument()
  10. newDoc_3 = PdfDocument()
  11. # 将源文件的第一页插入到第一个文档中
  12. newDoc_1.InsertPage(doc, 0)
  13. # 将源文件的第2至4页插入到第二个文档中
  14. newDoc_2.InsertPageRange(doc, 1, 3)
  15. # 将源文件的剩余页插入到第三个文档中
  16. newDoc_3.InsertPageRange(doc, 4, doc.Pages.Count - 1)
  17. # 保存三个文档
  18. newDoc_1.SaveToFile("output/PDF1/自定义拆分PDF-1.pdf")
  19. newDoc_2.SaveToFile("output/PDF1/自定义拆分PDF-2.pdf")
  20. newDoc_3.SaveToFile("output/PDF1/自定义拆分PDF-3.pdf")
  21. # 关闭文档对象
  22. doc.Close()
  23. newDoc_1.Close()
  24. newDoc_2.Close()
  25. newDoc_3.Close()

拆分结果
拆分PDF指定页面

以上文章介绍了如何用Python操作PDF文档,进行PDF文档的合并和拆分。除了简单的合并和拆分外,上述方法还可用于自由操作PDF页面,从而组成新的PDF文档。Spire.PDF for Python 还有许多其他PDF文档操作功能,访问Spire.PDF for Python教程查看更多信息。

发表评论

表情:
评论列表 (有 0 条评论,209人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Java PDF文档

    这篇文章主要介绍以下两种拆分方式: 1. 将一个PDF文档快速拆分为多个PDF(每个PDF包含1页) 2. 根据指定页码范围,将一个PDF文档拆分为2个或多个PDF(每个

    相关 如何PDF编辑器将PDF文件

      PDF文件的使用频率现在还是很高的,不止使用PDF文件编辑PDF文件也挺多的,但是大家都知道怎么编辑PDF文件吗?知道文档的拆分要怎么做吗?说到PDF文件的拆分小编想到了文