PDF 格式现已成为共享和保存文档的标准。在处理 PDF 文件时,您有时可能需要复制 PDF 中的特定页面,以提取有价值的内容、创建摘要或仅共享相关部分而不分发整个文档。在本文中,您将学习如何使用 Spire.PDF for Python 通过 Python 复制 PDF 中的页面。
安装 Spire.PDF for Python
本教程需要用到 Spire.PDF for Python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.PDF
如果您不清楚如何安装,请参考: 如何在 Windows 中安装 Spire.PDF for Python
Python 在同一 PDF 中复制页面
要复制 PDF 页面,可以先基于 PDF 中指定页面的内容创建模板,然后通过 PdfPageBase.Canvas.DrawTemplate() 方法将模板绘制到新添加的页面上。具体步骤如下:
- 创建 PdfDocument 对象。
- 使用 PdfDocument.LoadFromFile() 方法加载 PDF 文件。
- 使用 PdfDocument.Pages[] 属性获取指定页面。
- 使用 PdfPageBase.Size 属性获取页面大小。
- 使用 PdfPageBase.CreateTemplate() 方法基于页面内容创建模板。
- 使用 PdfDocument.Pages.Add(size: SizeF, margins: PdfMargins) 方法在文档末尾添加一个相同大小的新页面。或者使用 PdfDocument.Pages.Insert(index: int, size: SizeF, margins: PdfMargins) 方法在指定位置插入相同大小的新页面。
- 使用 PdfPageBase.Canvas.DrawTemplate(template: PdfTemplate, location: PointF) 方法在新添加的页面上绘制模板。
- 使用 PdfDocument.SaveToFile() 方法保存结果文件。
- Python
from spire.pdf.common import *
from spire.pdf import *
# 创建PdfDocument对象
pdf = PdfDocument()
# 加载PDF文件
pdf.LoadFromFile("示例.pdf")
# 获取第一页
page = pdf.Pages[0]
# 获取页面大小
size = page.Size
# 基于该页面创建模板
template = page.CreateTemplate()
# 在文档指定位置插入新页面
page = pdf.Pages.Insert(2, size, PdfMargins(0.0))
# 在文档末尾添加新页面
# page = pdf.Pages.Add(size, PdfMargins(0.0))
# 将模板绘制到新页面上
page.Canvas.DrawTemplate(template, PointF(0.0, 0.0))
# 保存结果文件
pdf.SaveToFile("同一PDF复制页面.pdf");
pdf.Close()
Python 在不同 PDF 之间复制页面
Spire.PDF for Python 还可以加载两个 PDF 文件,基于其中一个 PDF 文件中的页面内容创建模板,然后将其绘制到另一个 PDF 文件的页面上。具体步骤如下:
- 创建 PdfDocument 对象。
- 使用 PdfDocument.LoadFromFile() 方法加载两个 PDF 文件。
- 使用 PdfDocument.Pages[] 属性获取第一个 PDF 中的指定页面。
- 使用 PdfPageBase.Size 属性获取页面大小。
- 使用 PdfPageBase.CreateTemplate() 方法基于页面内容创建模板。
- 使用 PdfPageBase.Canvas.DrawTemplate(template: PdfTemplate, location: PointF) 方法在第二个 PDF 的指定位置插入相同大小的新页面。或者使用 PdfDocument.Pages.Add(size: SizeF, margins: PdfMargins) 方法在第二个 PDF 的末尾添加相同大小的新页面。
- 使用 PdfPageBase.Canvas.DrawTemplate(template: PdfTemplate, location: PointF) 方法在新添加的页面上绘制模板。
- 使用 PdfDocument.SaveToFile() 方法保存结果文件。
- Python
from spire.pdf.common import *
from spire.pdf import *
# 加载第一个PDF文档
pdf1 = PdfDocument()
pdf1.LoadFromFile("示例.pdf")
# 加载第二个PDF文档
pdf2 = PdfDocument()
pdf2.LoadFromFile("考核.pdf")
# 获取第一个文档中的第一页
page = pdf1.Pages[0]
# 获取页面大小
size = page.Size
# 基于该页面创建模板
template = page.CreateTemplate()
# 在第二个文档的指定位置插入新页面
newPage = pdf2.Pages.Insert(0, size, PdfMargins(0.0))
# 在第二个文档的末尾添加新页面
# newPage = pdf2.Pages.Add(size, PdfMargins(0.0))
# 将模板绘制到新页面上
newPage.Canvas.DrawTemplate(template, PointF(0.0, 0.0))
# 保存结果文档
pdf2.SaveToFile("在不同PDF之间复制页面.pdf")
pdf2.Close()
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。