markitdown 20+ 格式一条命令转 Markdown:把 PPT、PDF 喂进 LLM 前的文档转换
2026/9/17 21:17:44 网站建设 项目流程

markitdown 20+ 格式一条命令转 Markdown:把 PPT、PDF 喂进 LLM 前的文档转换

【免费下载链接】markitdownPython tool for converting files and office documents to Markdown.项目地址: https://gitcode.com/GitHub_Trending/ma/markitdown

手头 200 份 PPT、300 份 PDF 要进知识库,模型读不懂二进制,复制粘贴又丢结构。markitdown 是微软开源的 Python 工具,把 PDF、PPT、Word、Excel、图片、音频等 20 多种格式统一转成干净的 Markdown 文档转换工具,本地离线就能跑。读完这篇,你能在 30 秒装完它,一条命令转单文件,再跑通目录级批量转换和 LLM 增强工作流。

30 秒装完 markitdown:第一条命令就出 Markdown

要求 Python 3.10+,建议装在虚拟环境里。

python -m venv .venv && source .venv/bin/activate pip install 'markitdown[all]'

只想装某几个格式?把all换成 extras 组合,比如pip install 'markitdown[pdf,docx,pptx]'就只装 PDF、Word、PPT 的依赖。

对任意文件跑第一条转换命令:

markitdown report.pdf -o report.md cat report.pdf | markitdown > report.md

看不到输出时,用版本号确认装好了:

markitdown --version

不想装 Python 环境的话,项目自带 Dockerfile,docker run --rm -i markitdown:latest < report.pdf > out.md即可,适合 CI。

能力总览:markitdown 覆盖哪些格式转换

markitdown 内置 18 个转换器,加上插件能到 20 多种格式,全部本地运行,不上传文件。

能力说明典型用法
格式覆盖PDF、PPTX、DOCX、XLSX/XLS、EPUB、CSV/JSON、HTML、ZIP、图片、音频、Outlook、YouTube 字幕markitdown file.pdf -o out.md
结构保真标题转#级标题、表格转 Markdown 表格、列表保留有序/无序输出可直接按标题给 RAG 切片
多模态图片默认提取 EXIF,接 LLM 可生成图片描述;音频可语音转写MarkItDown(llm_client=...)
可扩展第三方插件走 entry point 注册,Azure Document Intelligence / Content Understanding 做云增强markitdown -p启用插件

这张测试样例图就是走 LLM 图片描述通道的输入,接上模型后描述会写进输出。

三个真实场景:单文件、批量目录、接 LLM

场景一:单份 PDF 转成可检索的 Markdown

测试集里有一份带图论文 PDF,适合验证结构保真:

markitdown packages/markitdown/tests/test_files/test.pdf -o ./out/test.md

输出里标题层级、段落和图片说明都保留,多栏排版偶尔段落顺序小错位,做检索语料够用。

场景二:批量转换一个目录的 PPTX

不用写脚本,一个 for 循环把整个目录转完:

mkdir -p ./out for f in ./presentations/*.pptx; do markitdown "$f" -o "./out/$(basename "${f%.pptx}").md" done

坏文件会单独报错但不中断循环,最后挑出缺失的输出补处理即可。

场景三:接 LLM 给图片写描述,或用 OCR 插件

PPT 里大量示意图,接上 LLM 客户端后图片会被自动描述并写进输出:

from openai import OpenAI from markitdown import MarkItDown md = MarkItDown(llm_client=OpenAI(), llm_model="gpt-4o", llm_prompt="用中文描述图表内容,包含关键数字") print(md.convert("weekly.pptx").markdown)

没有 LLM 预算时,走仓库内的 OCR 插件包:安装后markitdown -p启用,用 LLM Vision 给文档里的嵌入图片做识别,写法和上面对齐。

底层怎么走:从内容探测到统一输出

  1. 用 magika 对输入做内容探测,不只看扩展名,再叠加你给的-x扩展名、-mMIME、-c字符集提示
  2. 按优先级匹配转换器,专用格式(0.0)先于通用兜底(10.0)逐个尝试,实现都在 converters/
  3. 所有格式统一产出DocumentConverterResultresult.markdown直接取用

扩展走 entry point 注册,markitdown --list-plugins查看已装插件,-p启用,参考 sample-plugin 示例。

踩坑快问快答

Q:转换时报缺少依赖?MissingDependencyException,对应格式的 extras 没装。按报错补装,如pip install 'markitdown[pdf]',或一步到位[all]

Q:文本类文件转出来乱码?传字符集提示:markitdown -c UTF-8 file.txt。仍乱码就用file命令确认源文件真实编码再传对应的-c值。

Q:扫描件 PDF 转出来是空的?纯扫描件没有文字层,内置转换器提不到字。装 markitdown-ocr 插件用 LLM Vision 做识别,或--use-docintel走 Azure 云端布局分析。

Q:输出适合给人直接看吗?它面向 LLM 和文本管线,结构对但排版不求漂亮。要出版级排版的高保真文档,那不是它的主场。

Q:处理不可信输入要注意什么?markitdown 以当前进程权限做 I/O,和open()权限相当。别把陌生用户给的 URL 直接喂给convert(),改用更窄的convert_local(),并对文件路径和 URI 做校验。

挑一份手头的 PPT 或 PDF,pip install 'markitdown[all]'后跑一条markitdown,30 秒就能看出输出里的标题和表格是否对味。对味了再上批量循环和 LLM 增强。

【免费下载链接】markitdownPython tool for converting files and office documents to Markdown.项目地址: https://gitcode.com/GitHub_Trending/ma/markitdown

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询