# MinerU 保留PDF版式导出：对照 ORIGINAL 与 REFLOW 的文字、页数和空白页

## 实际范围

教程按 MinerU 4.0 文档编写，需核对实际安装版本及 tier。许可为 Apache 2.0 加额外条款；在线服务标识、规模门槛与模型许可见官方 LICENSE。本站未安装 MinerU 或运行解析模型。

已实际执行：原创输入生成、PDF渲染、文件哈希/教材事实检查与两条故意错误拒绝。人工reference-manual.json不冒充目标工具输出；actual-template.json为空模板，不能视为实际结果。

## 使用

```bash
python3 verify.py
python3 verify.py --actual my-observation.json
```

默认材料检查使用Python标准库；可选的--pdf深度检查需要pypdf，且只接受本题定义的PDF契约。不连接任何外部服务或数据库。--actual检查你填写的规范化事实记录，不自动识别任意工具原生导出；仍须逐项回读原生输出。

## 七步操作

1. 打开三页原创版式材料

source.pdf 第1页是长中文标题与三列表，第2页故意留白，第3页是附录。它本来就含可选择文字，不是扫描件；本练习用于版式导出比较，不能证明 OCR 成功。

2. 取得完整的实际解析结果

用匹配的 MinerU 版本解析，保留 MiddleJson、页面几何和图片。mineru parse --json 是命令回执，不可直接冒充 ParseResult 的原生序列化结果。

3. 分别调用两种布局模式

参考 render-example.py，将自己的 ParseResult 交给 render_pdf；分别用 ORIGINAL 与 REFLOW 输出。渲染器支持 PDF 不代表 mineru parse 有任意 --format pdf 参数。

4. 逐页核对位置和留白

在同一个 PDF 阅读器比较同一页，确认长标题不重叠、表格没裁掉、第2页留白和页码范围均有解释。ORIGINAL 需要源几何，不完整时要按实际错误处理。

5. 选择文字并回读字段

在自己导出的 PDF 选择 QR-LAYOUT-P1 和 QR-LAYOUT-P3，复制回文本编辑器核对。可选择文字与可编辑 Word 是不同结果，表格可能仍使用区域图像。

6. 检查实际PDF的页数和文字

安装 pypdf 后，用 --pdf 检查自己导出的文件页数与标记。该结构检查不能判断所有版式，仍需逐页看。

7. 保存两种结果与异常截图

不要用本包原始 PDF 冒充 MinerU 导出；记录 parse/render 版本、模式与实际文件哈希。负例检查确保空白页丢失和无文字层不会被算作通过。

## 原创与图片身份

source.pdf及数据文件是本站原创虚构教材。页面官方截图只说明工具入口；人工真值图与材料核验图都注明身份，未生成目标软件的假界面或假模型结果。

## 官方依据

- ORIGINAL/REFLOW 与序列化边界: https://opendatalab.github.io/MinerU/reference/output_files/
