简介

微软搞了个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官网 →