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

Python中使用pikepdf按指定页数分组拆分PDF的实现方法

pikepdf按固定页数分组拆分PDF实现方案

pikepdf 原生支持批量页面操作,不需要先拆单页再合并,也不需要复杂的嵌套循环,直接利用页面对象的切片和批量追加能力就能实现,性能和单页拆分基本一致。

核心实现代码

from pikepdf import Pdf

# 按需修改以下配置
input_file = "target.pdf"  # 待拆分的PDF路径
page_count_per_group = 5   # 每个拆分后文件包含的页数

with Pdf.open(input_file) as src_pdf:
    total_pages = len(src_pdf.pages)
    # 按固定步长遍历每个分组的起始位置
    for group_num, start in enumerate(range(0, total_pages, page_count_per_group), start=1):
        # 计算当前分组的结束位置,兼容最后一组页数不足的场景
        end = min(start + page_count_per_group, total_pages)
        # 创建空白输出PDF
        dst_pdf = Pdf.new()
        # 一次性追加当前分组的所有页面,无多余IO开销
        dst_pdf.pages.extend(src_pdf.pages[start:end])
        # 保存文件,文件名可按需自定义
        dst_pdf.save(f"split_part_{group_num:02d}_page_{start+1}_to_{end}.pdf")

实现说明

  • 官方给出的单页拆分示例仅为入门演示,pikepdf 没有专门封装多页拆分方法,是因为它的 pages 对象完全遵循Python列表的操作逻辑,支持切片范围选取,也支持通过 extend() 方法一次性追加多个页面,灵活度远高于固定的拆分API。
  • 批量追加页面的底层逻辑是直接拷贝PDF内的页对象引用,不会产生额外的临时文件开销,也不需要逐页重复解析PDF结构,大文件拆分也能保持很高的处理速度,完全避免了“先拆单页再合并”的性能问题。
  • 代码自动适配总页数无法被分组页数整除的场景,比如总页数23页、每组5页时,最后一个输出文件会自动包含剩余的3页,不会触发索引错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 10:06:20