如何使用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
相关产品推荐
相关产品推荐

