PDF 拆分的三种规则:按页、按书签、按章节

· 约 4 分钟 ✂️ PDF 拆分

按页 / 按书签 / 按章节,拆 PDF 的三种规则各有适用场景。理解它们的差异和坑,能避免拆完后”50 个文件找不回原顺序”的尴尬。

三种拆分规则对照

规则输入输出数适合
每页一份无参数= 总页数扫描件单页处理、批量打印
按页码区间区间表达式= 区间数提取部分章节、删页
按书签outline 树= 书签数长文档分章、按章节交付

按页拆分

最简单。一份 100 页的 PDF 拆成 100 份独立 PDF。

适用场景:

  • 扫描件每页单独 OCR 后再合并
  • 给打印店一页一份
  • 把电子书每章交给翻译时(章节边界靠人工切)

不适合大文档——100+ 个文件管理成本高,命名找回原顺序难(见下文”文件名规范”)。

按页码区间

灵活度最高。区间表达式语法跨工具大致一致:

表达式含义
1-10第 1 到第 10 页
1,3,5第 1, 3, 5 页(合成一份)
1-10, 15, 20-25三段合成多份输出
1-第 1 页到末页
-10头到第 10 页(部分工具支持)
5-3反向(多数工具报错或反序输出)
even / odd双数页 / 单数页(pdftk、qpdf 等多数现代工具支持)

输出策略两种:

  • 多区间合一:所有区间页合到一个 PDF
  • 每区间一份:每段区间独立输出

本工具默认每区间一份,需要合一时手动用 PDF 合并工具拼回去。

按书签拆分

长文档最高效的拆法。前提是原 PDF 有 outline 书签——通过 LaTeX、Word “标题样式”、Markdown 转 PDF 自动生成的目录都有。

操作流程:

  1. 工具读取 outline 树
  2. 列出所有顶级书签(一级章节)
  3. 每个书签确定它对应的页码范围(从该书签所在页到下一个同级书签前一页)
  4. 按范围拆分

输出文件名一般直接用书签标题:

01-前言.pdf
02-第一章 引言.pdf
03-第二章 方法论.pdf
04-第三章 实验.pdf
05-参考文献.pdf

  • 书签标题含特殊字符(/:?)会被替换成 _,要回查
  • 书签层级混乱(一级跳到三级)时部分工具拆不动,需要先在 PDF 阅读器里整理 outline
  • 没有 outline 的 PDF 不能按书签拆——可以先用 OCR + 工具识别章节标题生成 outline 再拆

文件名规范

要保证”按文件名排序 = 拆分顺序”,需要零填充数字前缀

拆分数前缀格式
≤ 91-2-…(一位足够)
10-9901-02-
100-999001-002-
≥ 10000001-0002-

不加前缀的下场:用 macOS Finder 或 Windows 资源管理器看,“第10页.pdf” 会排在 “第2页.pdf” 之前。本工具默认输出形如 <原名>_第N页.pdf没有零前缀——拆完后用 ZIP 内自带的顺序读,或自己写脚本补前缀:

# zsh / bash:批量给 "第N页" 类文件名补三位前缀
i=1
for f in *_第*页.pdf; do
  printf -v new "%03d-%s" "$i" "$f"
  mv "$f" "$new"
  ((i++))
done

删页 = 反向拆分

经常被问”PDF 怎么删一页”——拆分工具的另一种用法:

原 PDF 100 页,要删第 50-55 页:
拆出 1-49 + 56-100 → 合并成 95 页 PDF

很多删页工具内部就是”按区间拆 + 合并”两步。本工具拆 + 合并工具组合用即可。

加密 PDF 的处理

加密 PDF 必须先解密才能拆分(同合并)。本工具不支持直接处理带打开密码的 PDF,请先用 PDF 解密工具去除密码后再拆。

命令行参考

qpdf 拆分单页:

# 拆每一页
qpdf --split-pages=1 input.pdf out.pdf
# 输出 out-001.pdf, out-002.pdf, ...

# 拆指定区间
qpdf input.pdf --pages input.pdf 1-10 -- chapter1.pdf
qpdf input.pdf --pages input.pdf 11-20 -- chapter2.pdf

pdftk 删页:

pdftk input.pdf cat 1-49 56-end output result.pdf

按 outline 拆分需要脚本——pypdfpdfminer.six 读 outline,循环切。GUI 工具帮你省掉这步。

元数据与书签的去向

拆分后每份子 PDF:

  • 顶层元数据(Title / Author / 创建时间):从原 PDF 继承
  • outline / 书签:只保留范围内的书签子树
  • 页内链接:跨子文档的链接会变成”无效链接”——指向已不在的页号

拆完之后要分发给不同人时,记得编辑每份的元数据 Title——否则收件人看到的标签都是原文件名,混乱。

一句话总结

拆页要带数字前缀防字典序灾难,拆书签前查 outline 完不完整,拆完别忘了原书签 / 链接的”丢失代价”。

❓ 常见问题

按页拆 PDF 时,"1-10, 15, 20-25" 这种范围怎么写?

业界惯例用 逗号分隔区间,连字符表示连续范围——1-10,15,20-25 表示三段:1 到 10、单独 15、20 到 25。1- 表示第 1 页到末页,-10 表示第 1 页到第 10 页(部分工具不支持),5-3 反向区间一般报错。本工具支持 1,3,5-10,20- 这类组合。注意页号是显示给人看的物理页——从 1 开始计数,不是 0。

按书签拆分时,子书签会怎么处理?

看工具策略。只拆顶级书签:每个一级章节一份输出,子书签作为该输出文件的 outline 保留。拆所有书签:每个书签节点(不管层级)都拆出一份,可能产生几百个小文件。拆到指定层级:比如只拆到第 2 层,更精细。本工具按"顶级书签"拆分,是最常用的策略——一本书拆成"前言、第一章、第二章...、参考文献"等若干份。

拆出来的 PDF 文件名怎么排序才对?

理想做法是给 零填充数字前缀001-第一章.pdf002-第二章.pdf——这样字典序与拆分顺序一致。如果文件名是 第1页.pdf第2页.pdf、…、第10页.pdf(包括本工具默认输出),按文件名排序时 第10页 会排在 第2页 前——常见的"字典序灾难"。处理办法:拆完后用 ZIP 内的顺序读,或自己写个脚本批量重命名加零前缀。

拆 PDF 会损失质量吗?

不会。拆分是无损操作——把 PDF 内的若干页对象按区间复制到新 PDF,不重新编码。拆分前后图像、文字、字体都原样保留。但拆出来的小 PDF 每份都嵌入了原 PDF 的字体,所以总体积会大于原 PDF(每份都自带一份字体子集)。如果在意,拆完后单独跑一次字体子集化压缩。

✂️ 打开 PDF 拆分 按页码范围 · 每页独立 · ZIP 下载