简介
微软搞了个Python工具,专门把各种文件转成Markdown。PDF、Word、Excel、PPT、图片、音频,扔进去就吐出Markdown。拿它喂LLM特别顺手。
核心思路很简单:主流LLM(GPT-4o、Claude这些)都"说"Markdown,训练数据里大量Markdown,理解得好,token消耗还低。MarkItDown就把杂七杂八的格式统一成Markdown,让LLM更好消化。
核心功能
- 多格式支持:PDF、Word、Excel、PowerPoint、图片(EXIF元数据+OCR)、音频(语音转文字)、HTML、CSV、JSON、XML、ZIP、YouTube链接、电子书
- 保留文档结构:标题、列表、表格、链接都能识别,不是简单粗暴提取文字
- MCP集成:内置Model Context Protocol服务器,能跟Claude Desktop这类LLM应用直接联动
- 插件系统:第三方插件扩展功能,比如markitdown-ocr用LLM视觉能力做OCR
- Azure文档智能:可对接Azure Document Intelligence,处理复杂文档
价格方案
| 方案 | 价格 | 功能限制 |
|---|---|---|
| 开源版 | 免费 | 全功能,无限制 |
| Azure增强 | 按Azure计费 | 文档智能API调用量计费 |
这个工具完全开源免费,代码托管在GitHub。唯一成本是你如果要用Azure Document Intelligence增强版,才需要按Azure的计费标准付钱。
优缺点对比
| 优点 | 缺点 |
|---|---|
| 微软官方维护,质量有保障 | 需要Python环境,对非技术用户有门槛 |
| 支持格式极其全面 | 某些格式(如扫描PDF)需要额外OCR配置 |
| 输出的Markdown质量高,结构清晰 | 音频转写依赖额外依赖包 |
| 开源免费,代码可审计 | 没有图形界面,纯命令行/Python API |
| 支持LLM图片描述功能 | 文档相对简陋 |
适合人群
推荐给:
- 需要把大量文档喂给LLM的开发者
- 做RAG(检索增强生成)项目的工程师
- 内容创作者,想把PDF/Word转成可编辑的Markdown
- 数据分析师,需要从PDF报告里提取结构化数据
不推荐:
- 寻找图形界面工具的普通用户
- 只需要简单PDF转文字的场景(在线工具更快)
- 对格式保真度要求极高的人(这是给LLM看的,不是给人看的精美排版)
使用教程
安装
pip install 'markitdown[all]'
如果只想装特定格式的支持:
pip install 'markitdown[pdf,docx,pptx]'
命令行使用
最简单的方式:
markitdown 你的文件.pdf > 输出.md
指定输出文件:
markitdown 文件.docx -o 输出.md
管道方式:
cat 文件.pdf | markitdown
Python代码调用
from markitdown import MarkItDown
md = MarkItDown()
result = md.convert("报告.xlsx")
print(result.text_content)
启用LLM图片描述
from markitdown import MarkItDown
from openai import OpenAI
md = MarkItDown(
llm_client=OpenAI(),
llm_model="gpt-4o"
)
result = md.convert("带图片的PPT.pptx")
print(result.text_content)
实际体验
试了一把,把一个20页的产品手册PDF扔进去,输出的Markdown结构完整,标题层级、表格、列表都对得上。代码块识别也准,不会把代码搞乱。
Excel表格转出来格式也不错,合并单元格的处理还算合理。PPT里的图片如果有文字,配合OCR插件能提取出来。
YouTube链接测试了一下,自动抓取字幕,省得自己去下载字幕文件了。
购买建议
开源免费,直接用。如果文档量特别大、格式特别复杂,可以考虑接入Azure Document Intelligence增强版,那个要钱但效果更好。
对于大多数个人开发者和小团队,免费版完全够用。微软维护,99k+的star,社区活跃,不用担心烂尾。
官方链接:MarkItDown官网 →
