MarkItDown 在线版:免安装的 PDF 替代方案

MarkItDown 是一个 Python 工具,没有可以在浏览器里打开的东西。如果你手上有 PDF、想马上得到 Markdown,下面的转换器就在这个标签页里完成,不用安装,也不上传文件。

把 PDF 拖到这里

也可以粘贴或选择文件。一次最多 20 个,就在这个标签页里转换。

手边没有文件?试试

文件只在这个浏览器标签页里读取,从不上传。

MarkItDown 是什么

MarkItDown 是微软推出的开源 Python 包和命令行工具,采用 MIT 许可。它把多种文件转换成 Markdown,供语言模型和文本分析使用:PDF、Word、PowerPoint、Excel、HTML、CSV、JSON 和 XML、EPUB、ZIP 压缩包等。图片描述和音频转写会用到网上的托管服务。

它的长处是覆盖面广:一次调用就能处理一整个混着各种办公文件的文件夹。具体到 PDF,内置转换器用 pdfminer.six 提取文字,遇到排成表单或表格样式的页面则用 pdfplumber。

pdftomd 不是 MarkItDown,也不运行它。 它是另一个只为 PDF 打造的转换器,在你的浏览器里运行。这一页说明两者的区别,以及如果你需要,怎样自己运行 MarkItDown。

怎样运行 MarkItDown

需要 Python 3.10 或更高版本。只装 PDF 相关依赖:

pip install 'markitdown[pdf]'

在命令行里转换文件:

markitdown report.pdf -o report.md

或者在 Python 里:

from markitdown import MarkItDown

md = MarkItDown()
result = md.convert("report.pdf")
print(result.markdown)

我们的跑分就是用 0.1.9 版原样运行这些命令得到的。要支持 Word、PowerPoint、Excel 等其他格式,把 [pdf] 换成 'markitdown[all]'。

从 PDF 里能得到什么

在我们的 16 个公开 PDF 上,MarkItDown 0.1.9 的输出是这样的:

  • 没有标题的纯文本。 没有一个文档得到哪怕一个 # 标题,报告和论文的大纲都丢了。
  • 保留 PDF 的换行和连字符。 句子在 PDF 每行结尾处被截断,还有 307 个单词仍被行尾连字符拆开,比如 pur- suant。
  • 页眉页脚没去掉,每页重复出现。
  • 研究论文缺字。 三篇研究论文的输出里,大约缺了一半到四分之三的单词。
  • 扫描件什么都没有。 默认安装没有 PDF 的 OCR,所以扫描页输出为空。有个插件 markitdown-ocr,通过你配置的 API 把页面图片发给视觉模型来做 OCR。

对较简单的文档它表现不错:法院判决、表格类文件,以及中文、日文和韩文文本,所有单词都保留了下来。逐个文档的完整数据见我们的跑分。

同一个 PDF 用 pdftomd

MarkItDown 0.1.9pdftomd
运行在Python,你的电脑上你的浏览器,你的电脑上
安装pip install 'markitdown[pdf]'不需要
格式PDF、Office、HTML、EPUB 等PDF
标题没有有,根据字号和字重判断
段落保留 PDF 的换行把行合并成段落
页眉、页脚、页码保留去掉,有开关可保留
行尾连字符保留对照词表接回
表格作为文本,表单式页面作为表格Markdown 表格,有表格的页面会被标记
扫描版 PDF插件加云端视觉模型内置浏览器内 OCR
token 计数和 RAG 分块没有有
许可MIT免费使用

如果你还要转换 Word 或 PowerPoint 文件,或者在用 Python 写处理流程,MarkItDown 更实用。处理 PDF,尤其是想马上拿到结果,就用本页顶部的转换器。

常见问题

MarkItDown 有官方网站吗?

MarkItDown 以 Python 包的形式发布在 GitHub 上。微软没有把它做成网站,所以叫"MarkItDown 在线"的网站都是第三方运营的,背后用的引擎也各不相同。pdftomd 不运行 MarkItDown,也不上传你的文件。

MarkItDown 能读扫描版 PDF 吗?

默认安装不行。你可以加装 markitdown-ocr 插件,把图片发给你配置的视觉模型,或者用 Azure Document Intelligence 选项,这是微软的付费云服务。pdftomd 用在浏览器里运行的 OCR 模型读取扫描件,见 扫描版 PDF 转 Markdown。

给大模型喂文档,哪个更好?

对 PDF 来说,有标题、段落已合并、没有重复页眉的输出,模型更容易读懂,也更省 token。pdftomd 还会显示 token 数,并能把文档切成分块。见 给大模型用的 PDF 转 Markdown。

Python 里还有哪些选择?

PyMuPDF4LLM、Docling 和 Marker 都能把 PDF 转成 Markdown,各有所长,许可也不同。用 Python 把 PDF 转成 Markdown 里有每个工具能直接运行的代码。

MarkItDown 是微软的项目。pdftomd 是独立网站,与微软没有关联。