你有没有遇到过这种情况
领导发来一份 PDF 报告,让你整理成文档。你复制粘贴出来,发现格式全乱了:表格变成一坨文字,标题和正文挤在一起,换行的位置莫名其妙。
或者你想把一份 Word 方案喂给 AI 帮你总结,结果 AI 说"我无法读取这个文件"。
这种"文件格式不通"的痛,几乎每个打工人都经历过。
MarkItDown 就是微软专门为这个问题做的工具。
它是什么
MarkItDown 是微软 AutoGen 团队开源的一个 Python 命令行工具。它能把 PDF、Word、PPT、Excel、图片、音频、网页等 15 种以上格式的文件,统一转换成干净的 Markdown 文本。
转换过程中,它会尽量保留原文件的结构——标题还是标题,表格还是表格,列表还是列表,不会把你的文件压成一坨没有层次的纯文字。
GitHub 上已经 15 万+ Star,是目前同类工具里最火的。

支持哪些格式
| 格式 | 说明 |
|---|---|
| 提取文本、保留表格结构 | |
| 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 的核心优势是:
格式最全:一个工具覆盖 15+ 种格式,不用东拼西凑 上手最快:一行命令安装,一行命令转换 微软维护:AutoGen 团队长期更新,不是个人项目说弃就弃 支持插件:可以接 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,一行命令的事。
夜雨聆风