乐于分享
好东西不私藏

PDF 转文字总是乱码?微软开源了一个 15 万星神器,一行命令搞定

PDF 转文字总是乱码?微软开源了一个 15 万星神器,一行命令搞定

你有没有遇到过这种情况

领导发来一份 PDF 报告,让你整理成文档。你复制粘贴出来,发现格式全乱了:表格变成一坨文字,标题和正文挤在一起,换行的位置莫名其妙。

或者你想把一份 Word 方案喂给 AI 帮你总结,结果 AI 说"我无法读取这个文件"。

这种"文件格式不通"的痛,几乎每个打工人都经历过。

MarkItDown 就是微软专门为这个问题做的工具。

它是什么

MarkItDown 是微软 AutoGen 团队开源的一个 Python 命令行工具。它能把 PDF、Word、PPT、Excel、图片、音频、网页等 15 种以上格式的文件,统一转换成干净的 Markdown 文本。

转换过程中,它会尽量保留原文件的结构——标题还是标题,表格还是表格,列表还是列表,不会把你的文件压成一坨没有层次的纯文字。

GitHub 上已经 15 万+ Star,是目前同类工具里最火的。

支持哪些格式

格式 说明
PDF 提取文本、保留表格结构
Word (.docx) 标题、列表、表格、链接全保留
PPT (.pptx) 逐页提取幻灯片内容
Excel (.xlsx) 表格转 Markdown 表格
图片 读取 EXIF 信息,可选 OCR 文字识别
音频 语音转文字
HTML / CSV / JSON / XML 网页和结构化数据
ZIP 自动解压,逐个转换里面的文件
YouTube 链接 直接提取视频字幕
EPub 电子书 提取全文

一个工具通吃,不用为每种格式找不同的转换器。

怎么用

方法一:命令行(最简单)

先装好 Python(3.10 以上),然后一行命令安装:

pip install "markitdown[all]"

转换文件:

markitdown 报告.pdf -o 报告.md

就这么简单。Word、PPT、Excel 同理,换个文件名就行。

方法二:Python 代码调用

如果你需要批量处理或者嵌入到自己的程序里:

from markitdown import MarkItDown

md = MarkItDown()
result = md.convert("季度报告.pdf")
print(result.text_content)

不管什么格式,统一用 .convert(),统一拿 .text_content,不用记不同的写法。

实际效果怎么样

根据多个实测反馈:

  • Word 转换最稳:标题层级、列表、表格、链接都能正确保留,效果最好
  • PDF 中规中矩:纯文字型 PDF 效果好,但复杂排版(多栏、扫描件)偶尔会乱
  • Excel / PPT 够用:表格和幻灯片内容提取完整

说白了,它不是做高保真排版还原的,而是做"把文件里的信息提取成结构化文本"这件事——喂给 AI、做知识库、做文本分析,这才是它的主场。

它比同类工具好在哪

市面上做文件转换的工具不少,MarkItDown 的核心优势是:

  1. 格式最全:一个工具覆盖 15+ 种格式,不用东拼西凑
  2. 上手最快:一行命令安装,一行命令转换
  3. 微软维护:AutoGen 团队长期更新,不是个人项目说弃就弃
  4. 支持插件:可以接 OCR、Azure 文档智能等扩展,天花板高

如果你主要处理 PDF 且排版很复杂(比如学术论文),可以看看 Marker(另一个开源工具,PDF 还原精度更高)。但如果你的文件五花八门,MarkItDown 的通吃能力省心太多。

几个实用场景

  • 喂 AI 总结文档:把 Word/PDF 转成 Markdown,直接丢给 AI,比截图或复制粘贴靠谱得多
  • 搭建知识库:企业内部文档批量转 Markdown,导入向量数据库做检索
  • 整理会议纪要:录音文件转文字,自动生成结构化文档
  • 迁移旧文档:把积攒多年的 Word/PDF 统一转成 Markdown 归档

项目信息

  • 开源协议:MIT(可商用)
  • GitHub:github.com/microsoft/markitdown
  • Star:152,000+
  • 维护团队:微软 AutoGen
  • 系统要求:Python 3.10+,Windows / macOS / Linux

文件格式不统一这个痛点,说大不大,说小不小,但确实每天都在消耗打工人的时间和耐心。

微软把这件事做成了开源工具,15 万人打了星,说明真的有用。

装好 Python,一行命令的事。