MarkItDown:微软开源的全能文档转 Markdown 工具,170K Star

处理过 PDF、Word、Excel 转 Markdown 的人都知道,市面上各种转换工具要么收费、要么精度差、要么批量处理要写一堆胶水代码。微软开源的这个 MarkItDown 就是来解决这个问题的——一个轻量级 Python 工具,能把主流办公文档和多媒体文件一键转成 Markdown,专为 LLM 和文本分析管线设计。

MarkItDown 由微软 AutoGen 团队维护,GitHub 上已收获 170,000+ Star,是当前最热门的文档转 Markdown 工具之一。它的设计思路很清晰:把从 PDF、PowerPoint、Word、Excel 到图片、音频、HTML、YouTube 链接甚至 EPUB 电子书等十余种格式统一转化为 Markdown,让 LLM 或其他文本分析工具可以直接消费。

安装就一行命令:

pip install 'markitdown[all]'

使用也极其简单,命令行下直接跑:

markitdown 文档.pdf -o 输出.md

或者通过 Python API 调用:

from markitdown import MarkItDown

md = MarkItDown()
result = md.convert("报告.xlsx")
print(result.text_content)

核心功能覆盖:

  • PDF — 文本提取 + 布局分析
  • Office 套件 — Word (.docx)、PowerPoint (.pptx)、Excel (.xlsx/.xls)、Outlook 邮件
  • 多媒体 — 图片 EXIF 元数据 + OCR,音频转录
  • 网页 — HTML 解析 + YouTube 链接自动获取字幕
  • 电子书 — EPUB 格式支持
  • 压缩包 — ZIP 自动遍历内部文件

对于需要更高精度的场景,MarkItDown 还集成了 Azure Document Intelligence 和 Azure Content Understanding 的云端分析能力,可以在本地基础转换之外调用云 OCR 和结构化字段提取。同时还支持插件机制,社区已贡献了 OCR 增强插件(markitdown-ocr),用 LLM Vision 提取图片中的文字。

它的亮点在于格式保真——不是简单地剥掉标签转纯文本,而是尽力保留 Markdown 语义结构(标题层级、列表、表格、链接等),让 LLM 能准确理解文档原本的层级关系。

| :star: Stars | 170,066 |
| :hammer_and_wrench: 语言 | Python |
| :clipboard: 许可 | MIT |
| :package: 安装 | pip install markitdown |

GitHub

PyPI