用途
DocumentExtractor 用于借助 MarkItDown 将受支持的各种输入转换为 Markdown,从而让这些内容更容易被检查、搜索,并接入 LLM 工作流。它适合处理难以直接阅读的文件,覆盖 PDF、Word、PowerPoint、Excel、图片、音频、HTML、CSV、JSON、XML、ZIP、EPUB、Outlook 等格式。
检查与安装
可先检查 CLI 是否已存在:
Get-Command markitdown -ErrorAction SilentlyContinue
markitdown --version
优先使用 uv 安装:
uv tool install markitdown
uv tool install 'markitdown[pdf,docx,pptx]'
uv tool install 'markitdown[all]'
如果 uv 不可用,则回退到 pipx:
pipx install markitdown
pipx install 'markitdown[pdf,docx,pptx]'
pipx install 'markitdown[all]'
如果安装时没有包含所需的功能组,请按实际想要的范围重新安装更窄或更广的 extras 集合。当用户只需要部分格式时,安装 extras 前先阅读 references/feature-groups.md。
使用 CLI
将文件转换为 Markdown 并输出到标准输出:
markitdown .\report.pdf
写入文件:
markitdown .\report.pdf -o .\report.md
通过管道输入二进制内容,并给 MarkItDown 提供扩展名提示:
Get-Content .\report.pdf -AsByteStream | markitdown -x .pdf -o .\report.md
当输入源不明确时,使用 MIME 或字符集提示:
markitdown -x .html -m text/html .\page.bin
markitdown -x .csv -c utf-8 .\data.txt
保留内联 data: URI,而不是截断它们:
markitdown --keep-data-uris .\page.html -o .\page.md
有意识地选择 Extras
- 对轻量级类文本输入和通用转换,安装基础版 markitdown。
- 当用户只需要特定格式时,安装对应的定向 extras。
- 仅当广泛覆盖比依赖体积更重要时,才安装
[all]。 - 使用 Azure Document Intelligence 时,用
az-doc-intel重新安装。 - 仅在转写工作流中,使用
audio-transcription或youtube-transcription重新安装。
当前 extras 列表和格式映射位于 references/feature-groups.md。
常见工作流
转换 Office 或 PDF 文档:
markitdown .\slides.pptx -o .\slides.md
markitdown .\notes.docx -o .\notes.md
markitdown .\table.xlsx -o .\table.md
markitdown .\scan.pdf -o .\scan.md
在装好相关支持后,转换 YouTube URL 或压缩包:
markitdown "https://www.youtube.com/watch?v=dQw4w9WgXcQ" -o .\video.md
markitdown .\bundle.zip -o .\bundle.md
使用 Azure Document Intelligence 进行提取:
markitdown .\scan.pdf -d -e "https://<resource>.cognitiveservices.azure.com/" -o .\scan.md
列出已安装的第三方插件:
markitdown --list-plugins
markitdown --use-plugins .\input.pdf -o .\input.md
使用 Python API
当用户需要在脚本中使用 MarkItDown 而不是作为独立命令时,可使用 Python API:
from markitdown import MarkItDown
md = MarkItDown(enable_plugins=False)
result = md.convert("report.pdf")
print(result.markdown)
为 Document Intelligence 使用已配置的 endpoint:
from markitdown import MarkItDown
md = MarkItDown(docintel_endpoint="https://<resource>.cognitiveservices.azure.com/")
result = md.convert("scan.pdf")
print(result.markdown)
快速排错
- 如果找不到 markitdown,用
uv tool install ...或pipx install ...安装。 - 如果格式不受支持,先检查是否安装了正确的 extra。
- 如果 stdin 转换结果看起来不对,加上
-x、-m或-c提示。 - 如果
-d失败,检查 endpoint 并确认已安装az-doc-intel支持。 - 如果预期有插件行为,先运行
markitdown --list-plugins,然后加上--use-plugins。 - 如果输出细节不清楚,运行
markitdown --help,然后查阅上游文档。
最后手段
当本地行为不清楚或包发生变化时,可使用以下来源:
- CLI 帮助:
markitdown --help - 主文档:https://github.com/microsoft/markitdown/tree/main
- README:https://raw.githubusercontent.com/microsoft/markitdown/main/README.md
(注:该技能的详细平台支持、收费与价格、平台与效果信息暂未提供。)