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

如何使用Python在PDF末尾添加空白页实现两份PDF页数对齐

Python实现PDF页数对齐操作方案

依赖安装

首先安装PDF处理库,执行命令:
pip install pypdf

实现逻辑

整个操作拆成两个核心环节:

  • 页数比对:分别读取两份目标PDF,统计各自总页数,计算需要补充的空白页数量
  • 空白页追加:对页数更少的PDF,匹配自身页面尺寸生成对应数量的空白页追加到文档末尾,保证两份文档最终页数完全一致

完整可运行代码

from pypdf import PdfReader, PdfWriter

def align_two_pdf_pages(pdf_a_path: str, pdf_b_path: str, out_a_path: str, out_b_path: str):
    # 读取两份源PDF
    pdf_a = PdfReader(pdf_a_path)
    pdf_b = PdfReader(pdf_b_path)
    len_a = len(pdf_a.pages)
    len_b = len(pdf_b.pages)

    # 页数已经相等时直接导出副本
    if len_a == len_b:
        w_a = PdfWriter()
        w_a.append(pdf_a)
        with open(out_a_path, "wb") as f:
            w_a.write(f)
        w_b = PdfWriter()
        w_b.append(pdf_b)
        with open(out_b_path, "wb") as f:
            w_b.write(f)
        return

    # 定义补空白页的工具函数
    def fill_blank_page(src_reader, target_page_num, save_path):
        w = PdfWriter()
        w.append(src_reader)
        # 取源文档最后一页的尺寸作为空白页尺寸,避免页面大小错乱
        ref_page = src_reader.pages[-1]
        w_val = ref_page.mediabox.width
        h_val = ref_page.mediabox.height
        # 追加对应数量的空白页
        for _ in range(target_page_num - len(src_reader.pages)):
            w.add_blank_page(width=w_val, height=h_val)
        with open(save_path, "wb") as f:
            w.write(f)

    # 判断哪份PDF需要补页
    if len_a < len_b:
        fill_blank_page(pdf_a, len_b, out_a_path)
        w_b = PdfWriter()
        w_b.append(pdf_b)
        with open(out_b_path, "wb") as f:
            w_b.write(f)
    else:
        fill_blank_page(pdf_b, len_a, out_b_path)
        w_a = PdfWriter()
        w_a.append(pdf_a)
        with open(out_a_path, "wb") as f:
            w_a.write(f)

# 调用示例
if __name__ == "__main__":
    align_two_pdf_pages(
        pdf_a_path="first.pdf",
        pdf_b_path="second.pdf",
        out_a_path="first_aligned.pdf",
        out_b_path="second_aligned.pdf"
    )

补充说明

如果需要统一空白页为固定尺寸(比如标准A4),可以直接把代码里的w_val和h_val替换成固定值,A4尺寸对应参数为width=595, height=842(单位为印刷点,1点=1/72英寸)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 00:27:24