MarkItDown 完整指南:如何把 PDF、Word、Excel 免费转成 Markdown
【免费下载链接】markitdownPython tool for converting files and office documents to Markdown.项目地址: https://gitcode.com/GitHub_Trending/ma/markitdown
手里攒着几十份 PDF 研报、几本 Excel 周报,想丢进 RAG 管道或交给 LLM 做分析,却卡在第一步:二进制文件模型直接读不了,手工复制粘贴又丢光表格和层级。MarkItDown 是一个免费的 Python 文档转 Markdown 工具,吃 PDF、Word、Excel、PPT、HTML、音频、图片,吐出来是带标题、列表、表格结构的 Markdown,一条命令就能批量处理。
装完就出活:安装 MarkItDown 并跑通第一条转换命令 ⚡
前提只有一个:Python 3.10 及以上。安装二选一,图省事用[all]全量依赖,几乎所有格式开箱即用;只跑 PDF 和 Word 就装markitdown[pdf, docx],依赖更干净:
pip install 'markitdown[all]'装完命令行就能出活,-o让结果落盘:
markitdown report.pdf -o report.md不带输出参数时结果直接打印到终端,方便接管道。它支持的格式覆盖面很宽:PDF、Word、PPT、Excel、CSV、HTML、EPUB、Notebook、纯文本、ZIP 归档,图片给元数据,音频做转写,YouTube 链接出字幕。在 Python 里接入更短,三行以内:MarkItDown().convert("report.xlsx").text_content就能拿到转好的文本。
文档转 Markdown 之后,它替你省了哪几步活
不背功能列表,按手里的文件对号入座:
- PDF 研报进管道:你手里得到的是标题层级、表格、链接都保住的文本,切块向量化后召回的片段语义完整,省掉手工重排和二次校对。
- Excel 周报喂给模型:你手里得到的是 Markdown 表格,LLM 直接读数字就能生成总结句,省掉写脚本解析单元格坐标。
- 图片、音频、视频链接:图片输出 EXIF 元数据,音频转成文字,YouTube 链接出字幕,省掉为每种来源各写一套抓取脚本。
- ZIP 归档批量入库:整包丢进去,内部文件逐个转换,省掉自己写循环读文件再拼接的活。
能力分三档:哪些稳做、哪些配齐才做、哪些别指望
- 稳做的:文字型的办公文档和网页文件——PDF、Word、PPT、Excel、CSV、HTML、EPUB、Notebook、纯文本、ZIP,转出来结构基本可读。
- 配齐才做的:本地转换按格式拆了可选依赖,缺哪个补哪个;音频转写要装
audio-transcription依赖,YouTube 字幕要youtube-transcription;扫描件要装 OCR 插件(见下节)才认得出图里的字。 - 明确不做的:和原文件逐像素对齐的版式还原。分页、栏位、装饰元素都会有偏差,这类需求该换 LaTeX 排版或 PDF 编辑工具,它是文本清洗漏斗,不是排版引擎。
按需打开的三个增强开关 🧩
下面三个能力默认都是关的,用到哪个开哪个。
- LLM 图片描述:默认关闭。构造
MarkItDown()时传入llm_client和llm_model,转换图片和 PPT 时模型会替你写一段图内内容描述塞进 Markdown。代价是每张图多一次模型调用。仓库测试目录里就有一张专门验证这个功能的样例图:
- OCR 文字提取:默认关闭。markitdown-ocr 插件 给 PDF、Word、PPT、Excel 补上图片内文字识别,复用同一套
llm_client/llm_model客户端,Python 里传enable_plugins=True即启用。代价是同样按图计费调用模型;注意不传模型客户端时插件虽然加载但会静默跳过 OCR,退回内置转换器,看到"没效果"先检查是不是漏传了客户端。 - 云抽取服务:默认关闭。复杂文档本地转完总差一口气时,可以走 Azure Document Intelligence(命令行加
-d并用-e提供端点)或 Content Understanding(--use-cu加--cu-endpoint),结构化效果明显更好。代价是云端 API 费用和端点配置。
转换卡住了,按这个顺序排查 🔧
- 报错或提示不支持某格式:大概率缺对应的可选依赖 → 补装
pip install 'markitdown[pdf]'这类带格式后缀的安装包。 - 管道读入识别不出类型:标准输入没有扩展名可猜 → 用
-x传扩展名、-c传字符集做提示。 - 结构丢得厉害:排版越复杂,本地规则越容易丢 → 先转一份抽查质量,实在复杂就路由到云服务。
- 图片只出一段元数据:没装
exiftool,也没配 LLM → 装 exiftool,或传入llm_client拿描述。 - 想确认某格式的实现逻辑:转换代码按格式分文件放在转换模块目录,按格式名找文件即可。
如果你是在做批量文档清洗、给 RAG 或 LLM 备料,它值得直接上手;要"和原文件长得一模一样"的排版,或法律文书、财务报表这种需要逐页人工核对的,请绕道专用工具。建议先拿两三个文件跑一遍markitdown report.pdf -o report.md抽查标题和表格质量,确认合用再批量转整批。
【免费下载链接】markitdownPython tool for converting files and office documents to Markdown.项目地址: https://gitcode.com/GitHub_Trending/ma/markitdown
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考