# Split Books

> 拆分书籍、期刊、杂志、案例汇编、法律期刊、扫描 PDF 或多文章 PDF；按文章、章节、案例或条目标题分别导出 PDF。用户要求拆分书籍、拆分期刊、拆分杂志、按目录拆 PDF、按文章拆分、按章节拆分，或核验拆分文件是否从标题页开始、是否以责任编辑等标记结束时使用。

- Skill: `liudejun0306-cyber/split-books` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add liudejun0306-cyber/split-books`
- Raw SKILL.md: https://api.skillmd.com/api/skills/liudejun0306-cyber/split-books/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: liudejun0306-cyber (https://skillmd.com/u/liudejun0306-cyber)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/liudejun0306-cyber/split-books

---


# 拆分书籍

该技能用于把一本或一期包含多个部分的 PDF，拆成“每篇文章、每章、每个案例或每个条目一个 PDF”，并按主标题命名。

技能名称 `split-books` 保留英文，是为了符合 Codex 技能命名规则；对用户展示和说明统一使用中文“拆分书籍”。

## 工作流程

1. 检查来源文件
   - 列出目标 PDF 和已有输出目录。
   - 未经用户明确要求，不覆盖已有拆分结果。
   - 优先新建 `拆分文章_按标题`、`拆分章节` 或 `split-output` 等输出目录。

2. 判断 PDF 类型
   - 文本 PDF：优先用文本提取识别标题、目录和页码。
   - 扫描 PDF：先抽样渲染页面，再用中文 OCR；确认 `chi_sim` 可用后再依赖 OCR。
   - 混合或质量较差的 PDF：结合目录页、页面截图和人工页码表处理，并保留核对报告。

3. 确定拆分边界
   - 期刊、文章：优先使用用户指定的结束标记，常见为 `责任编辑`。
   - 书籍、章节：优先使用目录页页码或清晰的章节标题页。
   - 同时存在目录和结束标记时，用目录或标题页确定起点，用结束标记核验终点。

4. 按主标题命名
   - 用户要求只保留主标题时，删除 `——`、`—`、`--`、`一一` 等分隔符后的副标题。
   - 删除作者名、栏目名、页眉页脚、期刊期号和明显 OCR 噪音。
   - 保留标题本身需要的中文引号、冒号等标点。

5. 输出文件和报告
   - 每篇文章、每章或每个案例输出一个 PDF。
   - 同步生成 CSV 报告，至少包含：源 PDF、输出 PDF、标题、起始页、结束页、页数、识别方式。
   - 完成后核对：报告每一行都有对应文件，页数与 PDF 实际页数一致。

6. 明确处理异常
   - 连续页面出现同一结束标记，但中间没有新标题时，应合并到前一篇，不能生成假文章。
   - OCR 标题不可靠时，使用人工校正的目录页码表。
   - 边界无法判断时，列为疑似问题清单，不静默猜测。

## 内置脚本

常见文章型 PDF 可先使用：

```bash
python3 scripts/split_pdf_articles.py INPUT.pdf --output OUTPUT_DIR
```

常用参数示例：

```bash
python3 scripts/split_pdf_articles.py INPUT.pdf \
  --output OUTPUT_DIR \
  --start-regex '摘\s*要|摘要|内容提要' \
  --end-regex '[（(]\s*责任编辑\s*[:：]' \
  --main-title-only
```

脚本只是起点。遇到年鉴、扫描期刊、页码混乱或标题识别不稳定的文件，应在本地调整脚本，并把人工修正记录写入报告。

## 参考文件

遇到以下情况时读取 `references/splitting-patterns.md`：

- 需要在目录拆分、标记拆分、OCR 或人工页码表之间选择；
- 处理扫描 PDF；
- 清理中文法律期刊标题噪音；
- 记录核验结果和异常情况。

