返回转换工具
质量指南

PDF 转 Markdown:质量优先指南

PDF 不是普通文本文件。把它转成 Markdown,等于重建文件里从未保存过的结构:阅读顺序、标题层级、表格单元格、公式,以及每一行回到原文的位置。这篇指南讲三件事:怎么选转换路径、哪些地方一定会坏、以及如何用五分钟把结果核验一遍。

下面用到的例子都能在转换工具里直接打开:双栏 arXiv 论文、156 页 SEC 年报的节选,以及一份中文技术报告。点任意 Markdown 区块,就能看到它来自哪一页、哪个坐标。

先判断手上的 PDF 属于哪一类

转换质量在你点「转换」之前就已经决定了。一份 PDF 要么带有坐标信息的文本层,要么只是文字的图片,要么两者混在一起——每种情况该走的路径都不一样。判断错的典型后果是:Markdown 看着挺正常,其实悄悄丢了半页内容。

十秒钟自测

  • 试着选中一句话。 如果光标能连续选中一串文字,说明有可提取的文本层。
  • 搜索一个你眼睛能看到的词。 明明看得见却搜不到,说明这页是图片,或者字体的字符映射坏了——两种都需要 OCR。
  • 翻中间几页,别只看封面。 年报和手册经常在数字文件里夹着扫描件附件。
  • 留意双栏、侧边栏和横向表格。 文字是有的,但它在文件里的存储顺序,通常不是人的阅读顺序。
文档类型含义推荐路径
Word / LaTeX 导出的数字 PDF带逐字坐标的文本层本地提取——快、免费、不上传
扫描件只有图片,没有文本层OCR
混合文档正文是数字版,附件是扫描件本地提取,只对标记出的页面做 OCR
密集表格、公式、三栏以上文字有,但结构没有版面解析或视觉模型

要按页决定路径,而不是按整份文档决定。因为其中四页是扫描件,就把 200 页全部送进昂贵模型,是转换成本失控最常见的原因。

PDF 转 Markdown 到底会在哪里出错

下面这些是最值得核查的失效模式,按浪费时间的程度排序。每一项都能在首页的样例里看到。

  • 阅读顺序。 双栏论文常常是一段左栏、一段右栏交替存储的。粗糙的提取器会把两栏交织在一起,于是左栏的句子直接接上了右栏。arXiv 论文样例就是这类问题的标准测试用例。
  • 重复的页面装饰。 页眉、页脚、页码、水印、版权声明,在提取器眼里都是普通文字,会直接插进正文中间——中文技术报告每页都重复一个页码标记,arXiv 论文的标题上方还压着一段转载声明。
  • 表格。 PDF 里的表格不是数据,只是放在特定坐标上的文字,旁边画了几条线。合并单元格会被压平,多行单元格会被拆成多行,跨页的表格会变成两张互不相关的表。财务报表样例这三种情况都有。
  • 公式。 行内公式通常会变成一堆错位字符:上下标被压平、希腊字母丢失、间距消失。如果公式重要,你需要的是能输出 LaTeX 的解析器,而不是文本提取器。
  • 脚注与图注。 它们不在正文流里,所以要么整段消失,要么被插进某个段落中间。
  • 中日韩文本。 中文 PDF 还要多处理全角标点、没有词边界、以及竖排版面。按英文调参的提取器会在每个字之间插空格,或者干脆吞掉标点。

不要「看一眼觉得没问题」,要真的核验

最大的陷阱是「看起来很合理」的 Markdown。读起来通顺的输出,仍然可能少了一条脚注、一行表格,甚至一整栏文字。五分钟走一遍下面的流程,能抓住绝大部分问题:

  1. 把每页的第一个和最后一个区块和原文对一下。阅读顺序的问题最先在页边界和栏边界露出来。
  2. 在 Markdown 里搜三个你在图、图注、脚注里看到的词。搜不到,就知道是哪一类内容被丢掉了。
  3. 看标题大纲。一份 30 页的手册只产出两个标题,说明标题识别失败,你的 Markdown 没有可导航的结构。
  4. 每份文档至少抽查一张表格——优先挑有合并单元格的,或者跨页的那张。
  5. 粗略比较每页的字数。某页明显比邻页少很多,通常是扫描页、图片密集页,或者编码失败。

这套流程能成立的前提是:转换器保留了证据。每个区块都应该带着页码、坐标框、阅读顺序、提取方式和置信度,让可疑的一行能直接定位回页面上的具体位置,而不是靠人肉去原文里重读一遍。

表格:转换之前先决定策略

PDF 表格没有唯一正确的 Markdown 表示方式,所以先想清楚这张表要用来做什么。GFM 表格好读但表达不了合并单元格;HTML 能保住版面但难编辑;JSON 保住了数据但它不是文档。

策略适合放弃的东西
GFM 表格要用手读、手改的简单表格合并单元格、多行表头、跨页表格
Markdown 里嵌 HTML 表格需要为发布保住复杂版面可编辑性、diff 可读性、部分渲染器支持
来源映射 JSON质量审计、以后重新渲染、喂给流水线当成文章直接阅读
来源映射 JSON,单个区块
{
  "type": "table",
  "page": 9,
  "bbox": { "x": 72, "y": 318, "width": 451, "height": 96 },
  "readingOrder": 14,
  "method": "text-local",
  "confidence": 0.82,
  "notes": "continues from page 8"
}

JSON 格式的价值不在 JSON 本身,而在于:一张你不太确定的表格,自带页码和坐标框,可以立刻去核对。

OCR:按页付费,而不是按文档付费

OCR 是任何转换流程里最贵的一环——既费时间也费钱,而大部分文档并不需要处处都上。以下情况才该用:

  • 整页提取不出任何文字,或者产出的文字明显比邻页少很多。
  • 提取出来是乱码字符,通常意味着内嵌字体没有可用的字符映射。
  • 这页是照片、签署过的附件,或者一张你确实需要其中标注的示意图。
  • 表格的结构比文字更重要,而它的线条是画上去的、不是编码出来的。

除此之外——也就是构成文档主体的那些普通文本页——都应该在本地处理,这也是唯一完全不上传文件的路径。这条分工就是本工具的整体设计

按 Markdown 的去处选择输出格式

解析一次,再按去处渲染。干净的阅读版 Markdown、Obsidian 笔记、文档站页面、检索分块,是同一次解析的不同产物。

输出格式什么时候用
纯净 Markdown要粘进编辑器或聊天窗口,只需要正文
Obsidian 笔记需要 frontmatter、目录,以及能跳回原页的锚点
GitHub / MkDocs文件要进仓库或文档站,需要稳定锚点
RAG 分块要做检索索引,每个分块都需要标题上下文和页码来源
来源映射 JSON要做质量审计,或以后重新渲染这份文档

这五种都在转换工具的输出格式区域,且都基于同一次本地解析。

一套可复用的流程

  1. 先用本地提取跑完整份文档。免费、快,而且它会告诉你哪些页面有问题。
  2. 只读被标记出的页面,不用通读全部输出。扫描件、表格和公式都藏在那里。
  3. 只为这些页面确认 OCR 或版面解析。
  4. 按上面的五分钟流程核验,任何看着不对的地方都用页码和坐标回去查。
  5. 导出与去处匹配的格式;如果这份文档重要,把来源映射一并留下。

这样得到的转换结果是可以拿出去讲的:不是因为某个工具声称准确率 99%,而是因为每一行都能指回它来自的那一页。在把重要文档交给它之前,先拿一份真实样例试一次。

PDF 转 Markdown 的常见疑问

PDF 转 Markdown 最准确的方式是什么?

没有单一「最准」的工具,因为准确率取决于页面本身。数字文本页用本地文本提取几乎可以完全还原;扫描件需要 OCR;密集表格和公式需要版面解析或视觉模型。真正准确的做法是:把每一页交给能处理它的最省成本的方法,然后拿结果和原页核对。

为什么转换出来的 Markdown 句子会串行?

因为 PDF 存的是绘制顺序,不是阅读顺序。双栏版面下,两栏的文字片段可能交织存储,于是提取结果在两栏之间来回跳。建议核对每页的第一个和最后一个区块,并使用会暴露阅读顺序的转换器,这样你能看清区块是按什么顺序排的。

PDF 表格能可靠地转成 Markdown 吗?

简单表格可以。合并单元格、多行表头、跨页续表不行,因为 Markdown 表格语法无法表达这些结构。这类情况建议保留 HTML 表格,或在 Markdown 之外再导出结构化 JSON,并且每份文档都至少抽查一张复杂表格。

PDF 转 Markdown 一定要用 OCR 吗?

只有没有可用文本层的页面才需要——扫描件、照片,以及字体编码损坏的文件。多数文档的主体都是普通文本页,本地就能转换,所以为整份文档付费做 OCR 通常没有必要。

用真实样例试一次

无需注册,不上传普通文本页面。

打开转换工具