| name | markitdown |
| description | 文档转Markdown转换工具(markitdown)。当用户需要将各种文件格式转换为Markdown(PDF转Markdown/Word转Markdown/Excel转Markdown/PPT转Markdown/图片转Markdown/音频转Markdown/HTML转Markdown/CSV转Markdown/JSON转Markdown/XML转Markdown/ZIP转Markdown/YouTube视频转Markdown/EPub电子书转Markdown)、使用Azure Document Intelligence进行OCR识别、使用LLM生成图片描述、通过CLI命令行或Python API进行文档转换、处理可选依赖插件等相关任务时立即使用。支持pip install 'markitdown[all]'安装,Python >= 3.10。 |
| trigger | ["转Markdown","PDF转Markdown","Word转Markdown","Excel转Markdown","文档转换","markitdown","文件转MD","PPT转Markdown","图片转文字","视频转文字"] |
MarkItDown Skill
当前版本: 0.1.5 | Python >= 3.10
v0.1.5 新特性 (2026-02-20)
- PDF 表格优化:支持对齐的 Markdown 表格格式提取
- 宽表格支持:改进 PDF 转换中对宽表格的处理
- 列表解析修复:正确处理部分编号列表
- HTTP 头部:Accept headers 添加
text/markdown 内容类型
详细更新日志见 references/CHANGELOG.md
Quick Start
Installation
pip install 'markitdown[all]'
pip install 'markitdown[pdf,docx,pptx,xlsx]'
CLI Usage
markitdown path-to-file.pdf > document.md
markitdown path-to-file.pdf -o document.md
cat path-to-file.pdf | markitdown
markitdown --list-plugins
markitdown --use-plugins path-to-file.pdf
markitdown path-to-file.pdf -o document.md -d -e "<document_intelligence_endpoint>"
markitdown --version
Python API
from markitdown import MarkItDown
md = MarkItDown()
result = md.convert("test.xlsx")
print(result.text_content)
md = MarkItDown(enable_plugins=True)
result = md.convert("document.pdf")
md = MarkItDown(docintel_endpoint="<endpoint>")
result = md.convert("document.pdf")
from openai import OpenAI
client = OpenAI()
md = MarkItDown(llm_client=client, llm_model="gpt-4o")
result = md.convert("example.jpg")
print(result.text_content)
import io
with open("document.pdf", "rb") as f:
stream = io.BytesIO(f.read())
result = md.convert_stream(stream)
print(result.text_content)
Supported Formats
| Format | Install Command | Notes |
|---|
| PDF | [pdf] | Text extraction, table support |
| PowerPoint | [pptx] | Slides, notes, images |
| Word | [docx] | Document text, tables |
| Excel | [xlsx] | Spreadsheet data |
| Old Excel | [xls] | Legacy format |
| Images | Built-in | EXIF + OCR |
| Audio | [audio-transcription] | EXIF + speech transcription |
| YouTube | [youtube-transcription] | Video transcription |
| HTML | Built-in | Web page conversion |
| CSV/JSON/XML | Built-in | Text-based formats |
| ZIP | Built-in | Iterates contents |
| EPub | Built-in | Ebook conversion |
| Outlook | [outlook] | Email messages |
| Azure Doc Intel | [az-doc-intel] | Cloud OCR |
Optional Dependencies
pip install 'markitdown[all]'
pip install 'markitdown[pptx]'
pip install 'markitdown[docx]'
pip install 'markitdown[xlsx]'
pip install 'markitdown[pdf]'
pip install 'markitdown[xls]'
pip install 'markitdown[outlook]'
pip install 'markitdown[audio-transcription]'
pip install 'markitdown[youtube-transcription]'
pip install 'markitdown[az-doc-intel]'
Plugins
Using Plugins
markitdown --list-plugins
markitdown --use-plugins path-to-file.pdf
Developing Plugins
See packages/markitdown-sample-plugin in the MarkItDown repository for plugin development guide.
Azure Document Intelligence
For complex PDF layouts, use Azure Document Intelligence:
markitdown document.pdf -o output.md -d -e "<endpoint>"
Python API:
md = MarkItDown(docintel_endpoint="your-endpoint")
result = md.convert("document.pdf")
Setup guide: https://learn.microsoft.com/en-us/azure/ai-services/document-intelligence/how-to-guides/create-document-intelligence-resource
LLM Image Descriptions
For richer image descriptions, provide an LLM client:
from markitdown import MarkItDown
from openai import OpenAI
client = OpenAI()
md = MarkItDown(llm_client=client, llm_model="gpt-4o")
result = md.convert("image.jpg")
Streaming API
import io
from markitdown import MarkItDown
md = MarkItDown()
with open("document.pdf", "rb") as f:
stream = io.BytesIO(f.read())
result = md.convert_stream(stream)
print(result.text_content)
Note: convert_stream() requires a binary file-like object (not text mode like io.StringIO).
Troubleshooting
Common Issues
"No converter found": Install the optional dependency for that format (e.g., pip install 'markitdown[pdf]')
OCR fails on images: Ensure Tesseract is installed or use LLM integration for image descriptions
Azure Document Intelligence errors: Verify endpoint URL and authentication credentials
Plugin not loading: Use --use-plugins flag or set enable_plugins=True in Python
Streaming error: Use io.BytesIO() (binary mode), NOT io.StringIO() (text mode)
Installation Check
markitdown --help
pip show markitdown
markitdown --version
Docker Usage
docker build -t markitdown:latest .
docker run --rm -i markitdown:latest < input.pdf > output.md
docker run --rm -i markitdown:latest input.pdf -o output.md
Use Cases
LLM Data Preparation
from markitdown import MarkItDown
md = MarkItDown()
files = ["report.pdf", "notes.docx", "data.xlsx"]
for f in files:
result = md.convert(f)
print(f"=== {f} ===")
print(result.text_content[:500])
Batch Processing
import os
from markitdown import MarkItDown
md = MarkItDown()
output_dir = "markdown_output"
os.makedirs(output_dir, exist_ok=True)
for filename in os.listdir("."):
if filename.endswith((".pdf", ".docx", ".pptx")):
result = md.convert(filename)
output_path = os.path.join(output_dir, filename.rsplit(".", 1)[0] + ".md")
with open(output_path, "w", encoding="utf-8") as f:
f.write(result.text_content)