Python 复制PDF中的页面

操作PDF文档时,复制其中的指定页面可以帮助我们从PDF文件中提取特定信息,如文本、图表或数据等,以便在其他文档中使用。复制PDF页面也可以实现在不同文件中提取页面,以创建一个新的综合文档。

本文将介绍如何使用Python 在同一文档中复制PDF页面,或者复制页面到另一PDF文档中。

所需Python库 - Spire.PDF for Python 。可以通过下面的pip命令直接安装:

pip install Spire.Pdf

Python 在同一PDF 文档中复制页面

Spire.PDF for Python库支持在文档中添加新页面,然后将指定页面的内容绘制到新页面来实现复制PDF页面。操作如下:

  1. 使用 LoadFromFile() 方法加载PDF文档;
  2. 获取文档中指定页面,然后使用 CreateTemplate() 方法基于页面内容创建模板;
  3. 通过 Insert() 方法在指定索引处插入空白新页面 (也可以使用 Add() 方法直接在文档末尾添加新页面);
  4. 使用 PdfPageBase.Canvas.DrawTemplate() 方法将模板绘制到新页面上;
  5. 使用 SaveToFile() 方法保存PDF文档。

Python 代码:

python 复制代码
from spire.pdf.common import *
from spire.pdf import *

# 加载PDF文档
pdf = PdfDocument()
pdf.LoadFromFile("实验.pdf")

# 获取第一页
page = pdf.Pages[0]

# 基于该页面创建模板
template = page.CreateTemplate()

# 插入一个新页面到第二位置处
page = pdf.Pages.Insert(1, page.Size, PdfMargins(0.0))

# 将模板绘制到新页面上
page.Canvas.DrawTemplate(template, PointF(0.0, 0.0))

# 保存PDF
pdf.SaveToFile("复制PDF页面.pdf");
pdf.Close()

Python在不同PDF 文档之间复制页面

也可以将指定页面从一个PDF文档复制到另一个PDF文档中,具体操作如下:

  1. 使用 LoadFromFile() 方法加载两个PDF文档;
  2. 获取文档1中指定页面,然后使用 CreateTemplate() 方法基于页面内容创建模板;
  3. 通过 Insert() 方法在文档2中指定索引处插入空白新页面;
  4. 使用 PdfPageBase.Canvas.DrawTemplate() 方法将模板绘制到新页面上;
  5. 使用 SaveToFile() 方法保存结果文档

Python 代码:

python 复制代码
from spire.pdf.common import *
from spire.pdf import *

# 加载文档1
pdf1 = PdfDocument()
pdf1.LoadFromFile("实验.pdf")

# 加载文档2
pdf2 = PdfDocument()
pdf2.LoadFromFile("南极洲.pdf")

# 获取文档1中的第一页
page = pdf1.Pages[0]

# 基于该页面内容创建模板
template = page.CreateTemplate()

# 在文档2指定位置处插入空白新页面
newPage = pdf2.Pages.Insert(0, page.Size, PdfMargins(0.0))

# 将模板绘制到新页面上
newPage.Canvas.DrawTemplate(template, PointF(0.0, 0.0))

# 保存PDF
pdf2.SaveToFile("复制页面到另一PDF.pdf")
pdf2.Close()

生成文档中的红色水印,可以通过点击以下链接,申请一个月免费授权来去除:
https://www.e-iceblue.cn/misc/temporary-license.html

相关推荐
deepseek233 分钟前
SQLite WAL 开了仍报 database is locked?Python 后台任务的事务与幂等修复
数据库·python·sqlite·并发编程·wal
计算机编程指导师28 分钟前
计算机大数据项目推荐:基于Hadoop+Django的人工智能社交媒体情绪数据分析可视化系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·计算机·spark·毕业设计·社交媒体
高级程序源1 小时前
springboot荆州旅游推介平台24175-计算机课程设计、毕业设计
vue.js·spring boot·python·mysql·django·课程设计
企业数字化笔记1 小时前
新租户注册成功却不能用?开通状态、初始化恢复与可用性验收
开发语言·python
Guarding and trust1 小时前
项目拆解(二):模型输出是‘野‘的——三层兜底+重分析,把AI变成可靠零件
java·人工智能·python·大模型·fastapi·ollama·错误兜底
瑶山1 小时前
Windows + WSL2 Ubuntu + VS Code配置C++开发环境
开发语言·c++·windows·vscode·wsl
用户298698530141 小时前
Python 实战:将 HTML 内容保存为图像文件
后端·python·html
for_ever_love__1 小时前
LangChain MultiVectorRetriever:一个文档存多个向量
人工智能·python·自然语言处理·langchain·ai大模型·多向量·摘要检索
迅猛龙办公室1 小时前
Python实现获取星期字符串
java·前端·python
开开心心就好1 小时前
一元二次方程求解工具,答案带详细步骤
java·服务器·开发语言·算法·pdf·ocr·perl