856 words
4 minutes
MarkItDown - 将多种文档转换为 Markdown 文件的工具
首次发布: 2026-04-14
... 次访问

众所周知大模型的文档语言用的是 Makrdown。为了便于大模型阅读各类文档,微软开发了一套可以将多种文档格式转换为 Markdown 格式 (保留标题、列表、表格、链接等) 的工具——MarkItDown。它支持的转换格式有

  • PDF
  • PowerPoint
  • Word
  • Excel
  • Images (不仅提取 EXIF 元数据,还能进行 OCR 识别)
  • Audio (不仅提取 EXIF 元数据,还能进行语音转录)
  • HTML
  • 其他基于文本的格式 (CSV, JSON, XML)
  • ZIP 压缩包 (以及遍历其中的文件进行转换)
  • Youtube 网络链接
  • EPub 电子书

工具安装#

MarkItDown 需要 Python 3.10+ 环境,可以通过下列命令一键安装

git clone git@github.com:microsoft/markitdown.git
cd markitdown
pip install -e 'packages/markitdown[all]'

或者

pip install "git+https://github.com/microsoft/markitdown.git#subdirectory=packages/markitdown&egg=markitdown[all]"

需要注意的是,该工具依赖 ffmpeg 处理音视频文件,因此需要确保系统中已经安装了 ffmpeg,并且将其添加到了环境变量中。如果没有安装,可以通过以下命令安装

# Linux
sudo apt update && sudo apt install ffmpeg

# macOS (使用 Homebrew)
brew install ffmpeg

# Windows PowerShell
winget install ffmpeg

使用方法#

基础使用#

命令行的使用方法如下,使用 > 或者 -o 指定输出文件路径

markitdown path/to/file.pdf > document.md
markitdown path/to/file.pptx -o document.md

此外,还可以通过管道的方式转换文档

# Linux 或 macOS
cat path/to/file.docx | markitdown > document.md

# Windows PowerShell - 不推荐使用
Get-Content path/to/file.docx | markitdown > document.md

插件#

MarkItDown 还支持第三方的插件,可以通过安装第三方插件来扩展其功能。下面指令列举了已安装的插件

markitdown --list-plugins

可以用这个指令启用插件

markitdown --use-plugins path/to/file.pdf

markitdown-ocr 插件

markitdown-ocr 插件为 PDF、DOCX、PPTX 和 XLSX 文件增加了 OCR 识别功能。为了使用这个插件,需要额外安装以下依赖

pip install markitdown-ocr
pip install openai  # 或者其他与 OpenAI API 兼容的库

使用方法如下

from markitdown import MarkItDown
from openai import OpenAI

# 转换是基于 LLM 的,因此需要提供一个 LLM 客户端实例
md = MarkItDown(
    enable_plugins=True,
    llm_client=OpenAI(),
    llm_model="gpt-4o",
)
result = md.convert("document_with_images.pdf")
print(result.text_content)

# 保存为 Markdown 文件
with open("document.md", "w", encoding="utf-8") as f:
    f.write(result.markdown_content)

Azure 文档数据提取器#

亦可以集成到这个工具中来使用

markitdown path-to-file.pdf -o document.md -d -e "<document_intelligence_endpoint>"

Python 接口#

基础 Python 接口的使用方法如下

from markitdown import MarkItDown

md = MarkItDown(enable_plugins=False)   # 设置为 False 来禁用插件
result = md.convert("test.xlsx")
print(result.text_content)

结合 Azure 文档数据提取器的使用方法如下

from markitdown import MarkItDown

md = MarkItDown(docintel_endpoint="<document_intelligence_endpoint>")
result = md.convert("test.pdf")
print(result.text_content)

如果想利用大模型的能力提取图像中的文本,可以提供 llm_clientllm_model 参数来启用 OCR 插件

from markitdown import MarkItDown
from openai import OpenAI

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

MCP 工具#

MarkItDown 还提供了一个 MCP (MarkItDown Content Processor) 工具,供本地模型使用。要使用,需要先安装依赖

pip install markitdown-mcp

如果使用 STDIO 模式运行这个 MCP 工具,运行这个指令

markitdown-mcp

如果使用流式 HTTP 和 SSE 模式运行工具,需要运行这个指令

markitdown-mcp --http --host 127.0.0.1 --port 3001

更多相关信息可以参考官方文档 MarkItDown MCP

MarkItDown - 将多种文档转换为 Markdown 文件的工具
https://adalovelemon.github.io/blog/en/posts/content/technotes/tools/markitdown/
Author
Ada Lovelemon
Published at
2026-04-14

Comments Section