MarkItDown:免费文档转 Markdown 工具,3 行代码完成集成
【免费下载链接】markitdownPython tool for converting files and office documents to Markdown.项目地址: https://gitcode.com/GitHub_Trending/ma/markitdown
MarkItDown 是一个免费的 Python 工具,把 PDF、Word、Excel、PPT、HTML 以及音频图片转成带标题、表格、链接的 Markdown,专供 RAG 管道和 LLM 分析使用。先立个预期:它是批量清洗文档进文本管道的前置工具,不是逐像素复刻页面版式的排版引擎。
装之前先判一下:三个问题
下结论前,把这三个问题过一遍:
| 问题 | 答案 |
|---|---|
| 覆盖哪些格式 | PDF、Word、PPT、Excel(含老式 xls)、CSV/JSON/XML、HTML、ZIP、EPUB、YouTube 链接,图片和音频给 EXIF 元数据 |
| 依赖成本 | 需要 Python 3.10 及以上;markitdown[all]一条命令装全量,也可按markitdown[pdf, docx]这种子集只拉需要的 |
| 有没有费用 | 本地转换全免费;只有接大模型写图片描述或走云服务时才产生 API 费用 |
3 分钟最小跑通
一条命令装好,转换落盘:
pip install 'markitdown[all]' markitdown report.pdf -o report.md不写-o时结果直接打印到标准输出,方便接管道。在 Python 里集成是 3 行:
from markitdown import MarkItDown md = MarkItDown() print(md.convert("report.xlsx").text_content)convert的第一个参数可以是本地路径、http 地址,甚至字节流。
真实工作流里它怎么表现
- 研报入库:输入一份 20 页的行业 PDF,输出是保留标题层级、表格和超链接的 Markdown,切块向量化后召回的文本语义完整。
- 周报摘要:输入一个月度 xlsx,输出是 Markdown 表格,LLM 直接读数字就能写出总结,不需要你处理单元格坐标。
- 素材包拆档:输入一个攒了 30 多份材料的 ZIP,输出是包内文件逐个转换后的结果,适合攒够一批再统一入库。
扩展能力开关面板
以下能力默认全关,用到再开:
- 大模型写描述:给
MarkItDown传llm_client和llm_model,它会在转 PPT 和图片时调模型为无文字的画面补一段描述。测试样例图如下:
- OCR 插件:
pip install markitdown-ocr之后,PDF/Word/PPT/Excel 里嵌的图片能走大模型视觉识别出文字,扫描件本地转不出字的场景靠它补,细节见 OCR 插件说明。 - 云服务:加
-d接 Azure Document Intelligence、--use-cu接 Content Understanding,复杂文档的结构化效果提升明显,代价是云端 API 计费。 - 第三方插件:
markitdown --list-plugins查看已装插件,转换时加-p启用。
排错速查
- 某类文件报错转不出→ 原因:该格式的可选依赖没装 → 处理:按格式单独补,如
pip install 'markitdown[pdf]'。 - 管道读入时识别不出类型→ 原因:字节流没有扩展名和字符集信息 → 处理:用
-x提示扩展名、-c提示字符集。 - 输出的标题和表格丢了→ 原因:本地转换对复杂排版必有损 → 处理:先抽一份核对结构,排版再复杂就切云服务抽取。
- 怀疑某格式实现有 bug→ 原因:每种格式的转换逻辑各自独立成文件 → 处理:到 转换模块目录 按文件名定位对应实现。
一句话总结:MarkItDown 的职责,就是把杂七杂八的二进制办公文件,变成 LLM 能直接吃的 Markdown。
- 适合:搭 RAG 知识库、给 LLM 分析做批量预处理、快速验证一个文档管道。
- 不适合:要求输出和原页面长得一模一样的版式还原,以及需要逐页人工校对的法务文书、财务报表。
【免费下载链接】markitdownPython tool for converting files and office documents to Markdown.项目地址: https://gitcode.com/GitHub_Trending/ma/markitdown
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考