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 天的临时许可证。