# PDFMathTranslate 按页翻译：长文分批、页码与缺页检查

将原创六页报告分成两个不重叠任务，用 PDFMathTranslate-next 的 pages 与 max-pages-per-part 记录原始页码，并复现缺页负例。

运行范围：原创 PDF/CSV/EPUB/HTML 材料与本地验收已实际执行。没有调用翻译模型、没有连接 Zotero 库、没有填写凭证。官方截图为官方项目示例，不是本练习运行输出。

依赖：Python 3.11+；PDF 验收需 Poppler 的 pdfinfo/pdftotext；OCR 复现需 tesseract 英文语言数据。安装翻译工具时遵循各自官方 Python 要求。

## 1. 确认原文确为六页

打开 source.pdf 的缩略图页列表，核对 QR-PAGE-01 至 QR-PAGE-06。运行脚本会读取实际页数并检查台账；不是用文件名猜页数。

```sh
pdfinfo source.pdf
python3 verify.py
```

## 2. 固定 Next CLI

本页使用 PDFMathTranslate-next 的 pdf2zh_next，而非主仓库 pdf2zh。查实际版本和 --pages 参数；需要翻译服务时按 Next 的服务文档配置。

```sh
pdf2zh_next --version
pdf2zh_next --help
```

## 3. 给两个任务写独立目录

任务 A 翻译原文 1–3 页，任务 B 翻译 4–6 页。不要把任务 B 的本地第 1 页记成原始第 1 页；ledger.csv 已给出原页号和目录。

```sh
mkdir -p output/part-a output/part-b
```

## 4. 执行所需页面

按 Next 官方语法用 --pages 与 --output。下面两次会实际调用翻译后端，教材未执行；先确认自己的额度与版本。

```sh
pdf2zh_next source.pdf --pages 1-3 --output output/part-a
pdf2zh_next source.pdf --pages 4-6 --output output/part-b
```

## 5. 需要时限制每个分段大小

Next 的 --max-pages-per-part 限制分段页数，不能代替源页范围台账。双语模式的输出页数可能比源页数多，验收要映射原始页号。

```sh
pdf2zh_next source.pdf --pages 1-6 --max-pages-per-part 3 --output output/split
```

## 6. 复现台账缺页负例

完整 ledger.csv 包含六页；ledger-missing.csv 故意漏掉第 4 页。脚本应拒绝后者并返回非零，本包实际记录了这次失败。它证明台账检查能报错，不代表模型已翻译。

```sh
python3 verify.py --ledger ledger-missing.csv
```

## 7. 合并前核对每一页

每份实际产物登记原始页范围、文件哈希与复核人。确认无重复、无缺页，再选择自己的 PDF 合并工具；保留原文和独立产物，不用简单“页数相等”替代内容检查。

## 来源

- https://pdf2zh-next.com/advanced/advanced.html

## 教材

原创输入材料可用于学习练习。官方图片版权归原作者，网页中保留来源；ZIP 不打包这些官方图片。
