最好的 PDF 转 Markdown 工具:对比测试

从法院判决书、税率表到一份 1969 年的扫描件,16 份公开 PDF 分别交给三款转换工具,用同一套方法打分。脚本是公开的,每个数字你都能自己核对。

最近更新: 2026-11-13

简短的结论

  • 在把文字提取出来这件事上,pdftomd 和 PyMuPDF4LLM 不相上下。 在参与打分的 15 份文档上,两者平均都保留了 99% 的正文。在论文和密集表格上,PyMuPDF4LLM 的阅读顺序保持得略好一些。
  • pdftomd 留给你的清理工作最少。 它去掉每页重复的页眉、页脚和页码要稳定得多,也没有留下任何被行尾连字符断开的词。三者中只有它不用安装任何东西就能用,文件也不会离开你的设备。
  • MarkItDown 是为多种格式设计的,PDF 不是它的强项。 处理 PDF 时它返回不带标题的纯文本,保留 PDF 里的换行和连字符,而且在我们这组文件里丢掉了论文正文的很大一部分。这次运行中它没有 PDF 用的 OCR,所以扫描件输出为空。
  • 扫描件方面,pdftomd 和 PyMuPDF4LLM 都几乎完美地读出了我们那份扫描的财务报表,连表格也是,前提是 PyMuPDF 装了 OCR 引擎。

如果你写 Python,而且 AGPL 许可证适合你的项目,PyMuPDF4LLM 是一个出色的库。如果你想现在就在浏览器里拿到结果,不用上传文件,请用我们首页上的转换器。

结果

PDF 正文里的词有多少进了 Markdown。 越高越好。

文档pdftomdPyMuPDF4LLMPyMuPDF 2.1 + RapidOCR 3.10MarkItDown0.1.9
美国最高法院判决书12 页9,940%10,000%10,000%
NIST 人工智能框架14 页9,980%9,970%6,240%
研究论文,单栏15 页9,790%9,810%2,290%
研究论文,双栏12 页9,930%9,920%5,060%
公式较多的论文15 页9,160%9,330%4,550%
财务报表4 页10,000%9,820%10,000%
IRS 税表8 页9,980%9,810%9,840%
IRS W-9 表格6 页9,980%9,940%9,990%
美联储经济预测表5 页9,970%9,950%9,050%
扫描的财务表格2 页9,930%9,960%0%
中文文本7 页10,000%10,000%10,000%
日文报告10 页10,000%10,000%10,000%
韩文文本7 页10,000%10,000%10,000%
带图片的产品简介7 页9,990%10,000%10,000%
课程幻灯片12 页9,850%9,950%10,000%
平均9,900%9,897%7,801%
2026-11-13 用本页一同公开的脚本测得。分数自动计算,略有波动。每行最好的分数加粗。

那份 1969 年的打字稿扫描件没有放进表里:它唯一的参考文本是扫描仪自带的 OCR,质量太差,没法用来打分。pdftomd 和 PyMuPDF4LLM 都从中得到了可读的文本,PyMuPDF4LLM 的零散标点更少;MarkItDown 什么也没输出。

测试条件

转换工具版本运行方式
pdftomd本站,2026-11-13Chromium 中使用默认设置,16 个文件一次拖入,点 全部下载
PyMuPDF4LLMPyMuPDF 2.1 加 RapidOCR 3.10pymupdf4llm.to_markdown(path)
MarkItDown0.1.9MarkItDown().convert(path).markdown

这些文档都是公开的,挑选时尽量覆盖人们实际会转换的类型:

文档页数难点
美国最高法院判决书12脚注、每页重复的页眉
NIST 人工智能风险管理框架14封面、标题、链接
论文,单栏15标题、参考文献、少量公式
论文,双栏12跨栏的阅读顺序
公式多的论文15密集的数学公式
Apple 季度财务报表4带框线的财务表格
IRS Publication 15-T 节选8长税率表、目录
IRS W-9 表格6表单版式、小字
美联储经济预测表5多层表头的宽表格
阿波罗 11 号任务报告,打字稿扫描件41969 年的扫描件,没有文字层
Apple 财务报表,扫描件2没有文字层的表格
《世界人权宣言》,中文7CJK 文字
日本银行《展望报告》节选10日文、图表
《世界人权宣言》,韩文7韩文
Raspberry Pi 5 产品简介7图片、图片上的文字
斯坦福 CS231n 课程幻灯片12幻灯片、大量小图片

怎么打分

每份结果都和 poppler 的 pdftotext 从同一份 PDF 中提取的文本比较。

  • 找到的词是参考文本中的词出现在 Markdown 里的比例。每页重复的页眉、页脚和页码会先从参考文本中去掉,这样像 pdftomd 默认那样删掉它们的转换工具不会因此扣分。中文、日文和韩文按字计算。
  • 阅读顺序是参考文本与结果之间按词计算的最长公共子序列,占参考文本的比例。栏目交错或表格单元格读乱时会下降。一两个百分点的差别可视为误差。
  • 断开的词统计没有接回去的行尾连字符,比如 pur- suant。
  • 残留的页眉统计结果中重复出现四次及以上的行,这几乎总是没去掉的页眉或页脚。图片占位行不计入。

表格方面,我们把 Apple 财务报表的 35 行逐行和 PDF 对照:一行的标签和每个数值都各自落在自己的单元格里、顺序正确,才算对。完全正确的行数:pdftomd 30 行,PyMuPDF4LLM 28 行,MarkItDown 5 行。在同一份报表的扫描版上,pdftomd 对了 30 行中的 29 行,PyMuPDF4LLM 30 行全对。

速度

在同一台 4 核电脑上,pdftomd 在浏览器里用 21 秒转换完全部 16 份 PDF,其中包括 9 个扫描页的 OCR。PyMuPDF4LLM 同样开着 OCR,用了 64 秒;MarkItDown 不做 OCR,用了 11 秒。你的耗时会因硬件而不同,手机比笔记本慢。

这个测试说明不了什么

  • 其中一款转换工具是我们做的。 我们的清理规则是对照这类文档开发的,这对我们有利。我们公开了脚本,也如实列出我们落后的项目,但做决定之前,请用你自己的 PDF 试一试。
  • 自动打分会漏掉一些问题。 一列错位的表格可能一个词都不少;标题级别错了在这里也不扣分。所以 pdftomd 会把有表格的页面标出来,提醒你检查。
  • Docling 和 Marker 没有参加这一轮。 两者都需要 PyTorch 和下载模型,Marker 还要另外启动一个推理服务器。它们都用版面模型,常被推荐用于复杂版面和公式。运行方法见用 Python 把 PDF 转成 Markdown。
  • 在线转换工具没有放进表里。 它们的引擎会不打招呼地变,也没法固定版本,测完第二天分数就过时了。

该用哪个转换工具?

如果你想要用
现在就在浏览器里拿到结果,什么都不上传pdftomd
在流水线里用的 Python 库,而且 AGPL 适合你的项目PyMuPDF4LLM
一个库同时处理 Word、PowerPoint、Excel、HTML 和 PDFMarkItDown,但要知道 PDF 会变成纯文本
公式多的论文要最好的效果,并且有 GPUMarker 或 Docling

自己复现

下载测试工具包:里面有浏览器端的运行脚本、给这两个库用的 Python 运行脚本、打分脚本、生成上表的脚本和原始分数。PDF 来自表中列出的公开来源,确切地址和页码范围写在工具包的 README(英文)里。

PyMuPDF4LLM 由 Artifex 开发,MarkItDown 由 Microsoft 开发。pdftomd 与两者都没有关联。