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

如何用Python的PdfFileMerger合并重复PDF页并插入空白页?

解决方案:用PyPDF2的PdfWriter实现需求

因为PdfFileMerger确实没有内置添加空白页的方法,我们可以改用PyPDF2的PdfWriter类来实现所有需求——既可以重复添加指定页面,又能直接生成空白页插入,完全不需要额外创建空白PDF文件,也不会修改源文件。

完整代码示例

from PyPDF2 import PdfReader, PdfWriter

# 配置:(重复次数, 源PDF路径, 目标页码) 页码从0开始计数(第一页是0)
docs = [
    (20, "A.pdf", 0),
    (20, "B.pdf", 0)
]
blank_page_count = 3

merged_writer = PdfWriter()

for idx, (repeat_num, pdf_path, page_num) in enumerate(docs):
    # 读取源PDF的指定页面
    reader = PdfReader(pdf_path)
    target_page = reader.pages[page_num]
    
    # 重复添加指定页面
    for _ in range(repeat_num):
        merged_writer.add_page(target_page)
    
    # 非最后一个文档组,插入指定数量的空白页
    if idx != len(docs) - 1:
        for _ in range(blank_page_count):
            # 默认使用源页面的尺寸生成空白页,也可以手动指定宽高:add_blank_page(width=..., height=...)
            merged_writer.add_blank_page(width=target_page.mediabox.width, height=target_page.mediabox.height)

# 写入合并后的PDF
with open("mergeddoc2.pdf", "wb") as output_file:
    merged_writer.write(output_file)

关键说明

  1. 指定页面读取:通过PdfReader的pages[page_num]获取目标页面,未来要指定其他页时,只需要修改page_num的值(比如第二页填1)即可。
  2. 空白页生成:add_blank_page()可以直接生成空白页,这里复用了源页面的尺寸,保证空白页和源页面大小一致,也可以手动传入width和height自定义尺寸。
  3. 避免多余空白页:通过enumerate获取索引,判断是否为最后一个文档组,避免在最终PDF末尾添加不必要的空白页。
  4. 资源管理:使用with语句处理输出文件,自动关闭文件流,比手动调用close()更安全。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 16:08:12