You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python的PyPDF2替换PDF的指定页面

使用PyPDF2替换PDF指定页面

1. 先安装PyPDF2库

如果还没安装,执行以下命令:

pip install PyPDF2

2. 完整代码示例

下面的代码可以实现将overwritten.pdf的指定页面替换为other.pdf中的特定页面:

from PyPDF2 import PdfReader, PdfWriter

# 配置文件路径和目标页码
source_file = "overwritten.pdf"
replace_file = "other.pdf"
output_file = "modified_overwritten.pdf"  # 输出新文件,建议不要直接覆盖原文件

# 注意:PyPDF2的页面索引从0开始,比如第1页对应索引0,第3页对应索引2
target_source_page = 2  # 要替换的overwritten.pdf中的页面索引
target_replace_page = 0  # 用来替换的other.pdf中的页面索引

# 读取两个PDF文件
source_reader = PdfReader(source_file)
replace_reader = PdfReader(replace_file)

# 创建PDF写入器
writer = PdfWriter()

# 遍历源PDF的所有页面,替换目标页
for page_idx, page in enumerate(source_reader.pages):
    if page_idx == target_source_page:
        # 替换为other.pdf的指定页面
        writer.add_page(replace_reader.pages[target_replace_page])
    else:
        # 保留原页面
        writer.add_page(page)

# 写入修改后的PDF
with open(output_file, "wb") as f:
    writer.write(f)

关键说明

  • 页码索引问题:PyPDF2中所有页面都是从0开始计数的,如果你想替换overwritten.pdf的第3页,就要把target_source_page设为2;同理other.pdf的第1页对应索引0。
  • 避免直接覆盖原文件:代码中默认输出到新文件,建议先验证结果正确后,再考虑覆盖原文件(修改output_file为source_file即可)。
  • 加密PDF处理:如果原PDF有密码保护,需要先调用source_reader.decrypt("你的密码")才能读取页面内容。

额外提示

如果遇到兼容性问题,尝试升级PyPDF2到最新版本:

pip install --upgrade PyPDF2

内容的提问来源于stack exchange,提问作者realhuman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 23:50:28