10.9k Star!微软开源的这款文档转换工具,让PDF、Word全转成Markdown

上周有个朋友问我:”有没有一种工具,能把 PDF、Word、Excel 这些格式一次性全转成 Markdown?我在做 AI 知识库,需要批量处理一堆文档。”

这问题挺常见。之前试过不少方案,要么转出来格式乱成一团,要么丢失了表格和标题结构。直到看到微软开源的 MarkItDown,发现还真有更靠谱的选择。

这个项目是微软官方出的,专门做文件格式到 Markdown 的转换,目标场景很明确——给 LLM 和文本分析管道提供干净的结构化输入。10.9k Star 的体量,说明确实有人在用、确实有用。

今天就聊聊这个项目。

10.9k Star!微软开源的这款文档转换工具,让PDF、Word全转成Markdown

项目是什么

MarkItDown 是微软开发的轻量级 Python 工具,用于将各种文件转换为 Markdown 格式。

它的定位很有意思——类似 textract,但更专注于保留文档结构。标题、列表、表格、链接这些元数据,在转换过程中不会丢失,输出的是干净的 Markdown,对 LLM 友好。

支持的格式挺全:

类别 格式
办公文档 PowerPoint (`.pptx`)、Word (`.docx`)、Excel (`.xlsx`/`.xls`)
其他文档 PDF、HTML、EPub、CSV、JSON、XML、ZIP
多媒体 图片(EXIF 元数据 + OCR)、音频(EXIF 元数据 + 语音转录)
网络内容 YouTube URL
邮件 Outlook 消息

除了这些开箱即用的功能,项目还支持插件扩展、MCP 服务器、Azure Document Intelligence 集成,甚至能给 PPTX 和图片做 LLM 图像描述。

GitHub 数据

10.9k Star,6.9k Fork,这个量级相当可观。

指标 数值
Stars 10.9k
Forks 6.9k
Watchers 377
发布版本 18 个
提交记录 305 次

对比同类型的 textract,MarkItDown 虽然起步晚,但增长势头很猛。微软官方背书,加上专注 Markdown 输出这个差异化定位,让它在 AI 文档处理这个赛道很有竞争力。

最新版本 v0.1.5,2026年2月发布,保持着稳定迭代。

技术层面

技术栈很纯粹,Python 占了 99.7%。

Python 99.7%
Dockerfile 0.3%

要求 Python 3.10+,安装方式很灵活:

# 完整安装(所有依赖)
pip install 'markitdown[all]'

# 按需安装
pip install 'markitdown[pdf,docx,pptx]'

# Docker
docker build -t markitdown:latest .
docker run --rm -i markitdown:latest < ~/your-file.pdf > output.md

可选依赖分得很细:pdf、docx、pptx、xlsx、xls、outlook、az-doc-intel、audio-transcription、youtube-transcription,需要什么装什么,不会有一堆冗余依赖。

核心能力

用了一段时间,有几个功能我觉得比较实用。

文档结构保留。这是 MarkItDown 区别于其他方案的核心。转换 Word 文档时,标题层级、列表、表格都能保留。转换 PPT 时,每页的内容和结构都会保留,而不是变成一堆混乱的文本。

多媒体处理。图片能提取 EXIF 元数据,还能做 OCR 识别文字。音频文件能提取 EXIF 并做语音转录。YouTube 链接直接传进去,能把字幕和描述转成 Markdown。

LLM 图像描述。这个功能很有意思——用 LLM 给图片生成描述。比如你转一个包含截图的 PPT,图片部分会自动生成描述文本,LLM 读到这个 Markdown 时就能理解图片内容。

from markitdown import MarkItDown
from openai import OpenAI

client = OpenAI()
md = MarkItDown(llm_client=client, llm_model="gpt-4o")
result = md.convert("example.jpg")
print(result.text_content)

Azure Document Intelligence 集成。可选支持,能处理更复杂的文档结构,适合企业级用户。

适合谁用

根据我的体验,建议以下几类人重点关注:

AI 应用开发者。做知识库、文档分析、RAG 这类应用,需要把文档转成 LLM 友好的格式,MarkItDown 是目前最省心的选择之一。

数据分析师。需要批量处理 Excel、CSV、PDF 文档,转成结构化文本做分析。

技术写作者。手头有一堆旧文档想转成 Markdown 格式,MarkItDown 能省不少力气。

LLM 应用使用者。给 LLM 提供文档输入时,需要先把文档转成纯文本,MarkItDown 输出的 Markdown 比直接复制粘贴干净得多。

典型场景

说几个我实际用过的场景:

RAG 知识库构建。上传一批 PDF 和 Word 文档,用 MarkItDown 转成 Markdown,然后喂给 LLM。转换过程中表格和标题结构都保留了,检索效果比直接用 OCR 好很多。

PPT 批量处理。把几十页的 PPT 转成 Markdown,提取每页的核心内容和结构,方便后续做摘要或者分析。

音频转文字记录。会议录音直接扔进去,转成带时间戳的 Markdown,比手动整理高效得多。

和同类对比

市面上有几个类似的方案:

textract。老牌 Python 文档提取库,支持格式很全,但输出是纯文本,没有 Markdown 结构。MarkItDown 可以理解为 textract 的 Markdown 优化版。

Pandoc。强大的文档转换工具,但配置复杂,上手成本高。MarkItDown 更轻量,专注文档转 Markdown 这一个场景。

MarkItDown 的优势在于专注和结构保留。微软官方维护,更新及时,而且针对 LLM 使用场景做了专门优化。

有什么需要注意的

部分格式需要额外依赖。图片 OCR、音频转录、YouTube 这些功能需要安装对应的可选依赖,不然会报错。开始用之前先想清楚需要哪些功能。

复杂 PDF 可能丢格式。一些排版复杂的 PDF,转换后可能会有轻微偏差,需要人工检查。

LLM 图像描述有成本。这个功能依赖 LLM API,调一次收一次费,大批量使用需要注意费用。

快速上手

安装:

pip install 'markitdown[all]'

命令行使用:

# 基本转换
markitdown your-file.pdf > output.md

# 指定输出文件
markitdown your-file.pdf -o output.md

# 查看支持的插件
markitdown --list-plugins

Python API:

from markitdown import MarkItDown

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

建议先从简单场景开始,比如一个 PDF 或 Word 文档,看看输出效果如何,再决定是否需要完整安装。

相关链接

  • GitHub:https://github.com/microsoft/markitdown
  • PyPI:pip install markitdown
  • 文档:项目 GitHub 仓库有详细 README

MarkItDown 是微软在 AI 文档处理领域的一次漂亮出手。10.9k Star 证明了它的实用价值,专注于 Markdown 输出这个差异化定位很精准。结构保留、多格式支持、插件扩展这些特性,让它在 LLM 文档预处理这个场景很有竞争力。

适合 AI 应用开发者和数据分析师使用,能极大提升文档处理效率。局限性在于复杂 PDF 偶有格式丢失,另外某些高级功能需要额外配置。

开源项目行业动态

3k Star的多Agent编排工具,让我同时用Claude和Codex写代码

2026-4-14 19:48:56

AI情报

阿里云百炼「记忆库」正式上线,让龙虾真正记住你!

2026-4-9 14:45:27

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧