---
name: photos-to-notion
description: 将照片、扫描件或手写笔记 PDF 原样转为 Notion 可编辑文档：默认逐段、逐句保留原文，只修正可由页面确认的 OCR 错字、断行和版面顺序；思维导图、流程图、复杂表格与示意图保留为图片。仅适用于照片型、扫描型或手写 PDF；不用于整理当前对话、纯文本笔记或文字可直接读取的普通电子 PDF。
---

# 手写 PDF 转 Notion

## 目标与默认结果

以用户指定的 PDF 为输入，输出准确、忠实、可追溯的 Notion 文档。普通正文、标题、列表、简单表格和可靠公式转为可编辑内容，并经过人工式审校；思维导图、流程图、关系图和复杂示意图保留为图片。

分流单位是“页面区域”，不是整页。同一页可以同时包含可编辑正文和一张或多张保留图片。不要把图结构强行线性化，也不要把 MinerU 对图结构区域产生的散乱文字写入正文。

默认先生成本地可恢复的 `notion-import.zip`；用户提供目标 Notion 页面并要求写入时，再导入或写入。默认执行**原样转录模式**：逐段、逐句保留原文，不提炼、不总结、不润色、不改写观点、不纠正作者的事实或表达。只修正能与原页面直接核对的 OCR 错字、漏字、重复字、断行、标点和阅读顺序。只有用户明确要求总结、精简、润色、纠错或重组时，才执行对应改写，并在 `review.md` 记录范围。不得凭空补充事实、数据或结论，也不重画思维导图。

“整理”“转成可编辑文档”“导入 Notion”本身不代表用户授权总结或改写。若用户说“原样”“忠实呈现”“保持原文”，必须使用原样转录模式。

执行前简要说明输入范围、资料是否会上传 MinerU，以及“文字区域可编辑、图结构区域保留图片”的策略。用户要求离线时不得使用云端服务。

## 1. 输入与恢复目录

- 默认只处理用户明确指定的 PDF；多个文件仅在用户明确指定时处理，不扫描或上传无关文件。
- 不修改、移动或覆盖原 PDF。记录文件名、大小、页数和内容哈希。
- 新任务输出到 `notion-output/<运行时间>/`，包含 `manifest.json`、`pages/`、`crops/`、`raw/`、`bundle/`、`review.md` 和 `notion-import.zip`。
- `manifest.json` 逐页记录页面状态，并为每个区域记录边界框、区域类型、MinerU 内容是否采用、裁剪图片和待核对项；不得保存凭据或临时签名链接。
- 再次执行时复用输入哈希与设置均未变化的成功结果，先检查未完成任务，避免重复上传。

## 2. 渲染与区域识别

先把 PDF 逐页渲染为足够清晰的图片，保持原始页序和方向，例如 `pages/page-0001.png`。必须观察整页版面，再决定哪些 MinerU 内容可进入最终文档；不能仅凭线性 OCR 文本判断结构。

对每一页识别以下区域，允许一页包含多种区域：

- `text`：连续正文、标题、普通列表，可采用 MinerU 结果。
- `diagram`：思维导图、流程图、关系图、概念图、白板图，或主要用箭头、连线、空间位置、颜色表达关系的内容。
- `table_or_formula`：可可靠结构化时转为可编辑内容；结构复杂或符号存疑时保留裁剪图。
- `illustration`：普通插图、照片或不需要转录的视觉材料，保留图片。
- `uncertain`：模糊、遮挡、严重倾斜、多种结构交叠或边界不清的区域，默认保留图片并标记待核对。

出现中心主题向外分支、文字散布于多个方向、节点由曲线或箭头连接、层级主要依赖空间位置等特征时，优先判为 `diagram`。不能因为 OCR 识别出了大量文字就判为普通正文。

### 裁剪规则

- `diagram` 可能只占页面的一部分。裁剪其完整区域，必须包含节点、连线、箭头和必要上下文；不要只裁文字框。
- 边界无法可靠确定、图结构延伸到页边或与正文高度交叠时，保留整页图，避免截断关系。
- 一个页面可生成多个裁剪图，例如 `crops/page-0003-diagram-01.png`。
- 裁剪来自原始渲染页，不使用图像生成重画，不覆盖原图。
- 对裁剪区域保存页码和边界框，使最终图片可以追溯到原 PDF。

## 3. MinerU 解析与内容筛选

MinerU 负责提取可编辑文字，不负责判断思维导图的节点关系。可以上传原始 PDF 一次解析，也可按实际工具限制分批处理；无论哪种方式，最终内容都必须按第 2 节的区域分类筛选。

优先复用已有结果；否则：

1. 已配置 `MINERU_API_TOKEN` 时，按 [云端执行参考](references/cloud.md) 使用精准解析 API，只检查 Token 是否存在，不打印其值。
2. 没有 Token 时，使用可用浏览器打开 `https://mineru.net/`，观察当前界面后上传、解析并下载；不要硬编码旧按钮或选择器。
3. 登录和验证码由用户完成。上传或下载能力不可用时保存进度，并明确指出需要用户完成的操作。

保留 MinerU 原始输出和图片资源。网络短暂失败最多重试两次；提交状态不明时先查询任务，避免重复提交。登录失效、额度不足或明确失败时停止新增请求，不自动购买额度。

筛选规则：

- `text`：采用阅读顺序可靠的标题、段落和列表；手写不清处标记 `[待核对：第 N 页，原因]`。
- `diagram`：排除其边界框内由 MinerU 生成的散乱文字，只在对应位置插入裁剪图。
- `table_or_formula`：可靠时结构化；不可靠时保留裁剪图并标记。
- `illustration`：保留裁剪图，不生成虚构说明。
- `uncertain`：保留裁剪图或整页图，不用貌似完整但无法验证的文本替代。

若 MinerU 的文本块跨越保留图片边界、无法安全切分，则保留较大区域或整页图，并减少可编辑转录；不要为了追求文本覆盖率引入重复、错序或错误关系。

### 解析后的原文核对

MinerU 输出只是初稿，不能未经审校直接作为最终正文。完成区域筛选后，必须执行以下检查：

- 对照渲染页修正明显 OCR 错误，包括错字、漏字、重复字、断行、标题层级、标点、数字、英文缩写和被错误拼接的链接。
- 只有在确认其不是正文内容时，才删除水印、扫描时间戳、重复页眉页脚和明确的解析残片。原文即使重复、啰嗦或表达不顺，也保持不变。
- 不使用领域知识改正原作者观点，不把绝对表述改成条件表述，不添加参考资料。疑似原文错误应原样保留，并可在 `review.md` 单独标记，不得静默修改正文。
- 保留作者的全部核心问题、例子、探索过程、有效观点、内容顺序和可追溯结构。可以根据语义修复错误或混乱的标题分块，但除非用户明确要求，不重排论述顺序、不压缩篇幅、不把探索性笔记改写成另一篇文章。
- 将重要事实修正、概念修正、仍待核对事项，以及用户明确要求的删减范围记录在 `review.md`；MinerU 原始输出继续保存在 `raw/`，确保可以回查。

## 4. 按版面顺序组装 Notion 内容

- 生成 UTF-8 Markdown，PDF 文件名默认作为页面标题，PDF 内明确标题作为二级标题。
- 保持页序和页内大致阅读顺序。每个页面区段注明 `来源：原文件名，第 N 页`。
- 同一页的正文与图片按空间关系交错排列。例如，上方正文之后出现思维导图，再接下方正文，就按“文字—图片—文字”输出。
- 连续正文页保持原有顺序。可以修复跨页断句和明显错序，但不得擅自合并章节、删除例子或压缩论述；只有用户明确要求总结或重组时才可这样做，并在 `review.md` 记录。

### 语义分块与视觉层级

在不改变原文顺序、标题文字和信息量的前提下恢复视觉层级。不要机械沿用 OCR 产生的错误标题，也不要为了表示每一层关系而不断叠加编号：

- 页面标题之外，正文通常只使用两到三级视觉标题：一级章节用 Heading 2，章节内主题用 Heading 3；更深内容优先使用加粗短标签、项目符号、编号列表、引用或折叠块。
- 编号是可选的。只有在内容存在明确顺序、需要交叉引用或章节较长时才编号；一般最多编号到 `1.1` 或 `2.3`。避免 `5.1.3.2.4` 这类四层以上编号。
- 同一主题下并列的材料，如“所需数据、适用条件、优点、局限”，使用加粗标签或项目符号，不分别创建深层编号标题。
- 流程、步骤和有先后关系的内容使用编号列表；没有先后关系的要点使用项目符号；连续论证保留为段落，不要切成过多碎片。
- 一个标题下只有一两句话、且不承担导航作用时，通常改为加粗引导语并与正文放在同一块中。
- 分块优先服从原 PDF 的标题、段落、列表、页序和页内阅读顺序。可以修复 OCR 造成的错误标题层级，但不得重新组织主题、删减正文或改变作者结论。
- 写入 Notion 后检查目录和整页观感：如果连续出现大量短标题、标题层级超过三级，或编号比标题文字更抢眼，应降低层级并改用分点表达。
- `diagram` 区域采用如下形式，不附带该区域的错误转录：

  ```markdown
  ![原始思维导图，第 5 页](images/page-0005-diagram-01.png)

  > 来源：notes.pdf，第 5 页；图结构按原图保留。
  ```

- 复杂表格同时保留图片与可靠转录时，避免重复表达同一段普通文字。
- 公式识别后仍检查符号和上下标；存疑时保留裁剪图。
- 将最终使用的图片收集到 `bundle/images/`。Markdown 仅使用包内相对路径，不使用本机绝对路径、`file://` 或临时链接。
- `review.md` 记录总页数、可编辑文字区域数、图片保留区域数、使用整页图的页码、OCR 修正、事实或概念修正、用户要求的删改内容、失败项、待核对项、抽查范围和 Notion 导入状态。

## 5. 导入或写入 Notion

始终先把 `bundle/` 内 Markdown 与 `images/` 打包成 `notion-import.zip`，保留相对目录。不要把 `raw/`、Token、任务缓存或整个项目目录放入导入包。

用户提供目标 Notion 父页面并要求写入时，优先使用可用的 Notion 连接器；连接器无法上传本地图片时，改用浏览器执行 Notion 导入。不能假设文本连接器支持本地图片。

- 在指定父页面下创建项目子页面，或仅更新本技能上次创建且记录了页面 ID 的页面；不得覆盖其他笔记。
- 图片必须实际上传到 Notion，不能把本地路径作为最终图片地址。
- 创建后立即记录页面 ID；恢复失败写入前先读取远端现状，避免重复建页或重复追加。
- 写入后检查标题、段落、顺序、图片块、公式和表格。只能确认图片块存在时，不宣称已目视确认图片加载成功。

未指定目标页面时交付导入包，并说明在 Notion 电脑端通过“设置 → 导入”选择 `notion-import.zip`。用户只要导入包时不追问页面链接。

## 6. 验证与交付

交付前检查：

- PDF 每页及其区域均有明确状态。
- 所有 `diagram` 区域均未把 MinerU 的线性 OCR 内容写入最终正文。
- 思维导图裁剪未截断关键节点、连线或箭头；边界存疑时已使用整页图。
- 同页的可编辑文字与保留图片没有明显重复、遗漏或错序。
- 已对照页面检查明显 OCR 错误；原文病句、事实表述和观点保持原样，除非用户明确授权纠错或润色。
- 最终文档与原文的章节、例子和信息量基本一致；任何总结、精简或结构重写都有用户的明确要求。
- 所有知识性补充均有依据，没有虚构原文缺失的数据、事实或业务结论；重要改动已写入 `review.md`。
- Markdown 的每个图片引用都能解析到 ZIP 内真实文件。
- 页序与原 PDF 一致，ZIP 不含项目外路径或敏感凭据。
- 逐个检查 `diagram`、`mixed/uncertain` 情况；普通正文至少抽查首尾页和若干中间页，并记录范围。

最终用中文给出输出路径、可编辑文字区域数、保留图片区域数、整页保留页数、失败或待核对数量，以及用户需要接手的一步。明确区分“导入包已生成”和“Notion 页面已写入并验证”；没有真实执行不得声称完成。
