MarkItDown:用 Markdown 给 AI 喂文档
14.5 万 Stars,9959 个 Forks——这是微软一个 Python 小工具的成绩单。 不是框架,不是云服务,是一个命令行工具,专注做一件事:**把 PDF、PPT、Word、Excel 全转成 Markdown**。
我遇到的真实场景
上周想把一份50 页的产品需求文档喂给 GPT-4o,文档是 .docx 格式。
直接复制粘贴?格式全乱,表格裂开,标题层级丢失。
扔给 textract?输出是一坨无结构的纯文本,GPT根本不知道哪段是标题、哪段是正文。
MarkItDown 就是来解决这个问题的——它把各种办公文档转成结构完整的 Markdown,标题、表格、链接一个不少,GPT 直接就能用。
项目地址:
https://github.com/microsoft/markitdown
快速上手
GET STARTED
3步跑起来
左右滑动
1 第1步 | 安装 markitdown[all] pip install 'markitdown[all]' | 2 第2步 | 命令行直接转换 markitdown input.pdf output.md | 3 第3步 | 或 Python 代码调用 convert_local("input.pdf") |

pip install 'markitdown[all]'
支持的格式覆盖了日常办公的几乎全部场景:
为什么是 Markdown?
主流 LLMs 原生"理解" Markdown。GPT-4o、Claude、Gemini 的训练语料里有大量 Markdown 格式文本,它们对 Markdown 的标题层级、表格、列表、链接都有自己的认知。
把文档转成 Markdown,本质上是用 AI 能读懂的格式喂给它,比裸文本效果好得多。
MarkItDown 的输出不是为了给人看的好看排版,而是给 AI 看的结构化文本——这一点定位很清晰。

Python 代码怎么用
from markitdown import MarkItDown md = MarkItDown() result = md.convert_local("document.pdf") print(result.text_content)一行代码,把任意支持的格式转成 Markdown 字符串,后续直接拼接进你的 LangChain 管道或者 AutoGen Agent 里。
实际效果怎么样?
我测试了一份包含多级标题、合并单元格表格、图文混排的 PPT 文件:
引用保留对于 AI 管道来说,这些结构信息比纯文字内容本身更有价值。
写在最后
OPEN SOURCE
去 GitHub 看看
→ Star 一个
夜雨聆风