你有没有遇到过这种情况,手里有一份 PDF 论文、一份 Word 报告、还有几页 PPT,想让 AI 帮你总结一下,结果复制粘贴过去全是乱码?表格对不上,图片变成一堆乱七八糟的字符,格式全乱了。
这时候你会想,要是有一个工具能把这些文件直接转成干净的文本就好了。
markitdown 就是干这个的。
一、这是什么
markitdown 是微软开源的一个 Python 工具,专门用来把各种文件格式转换成 Markdown。它的目标用户是需要把文档喂给 AI 处理的人,因为 Markdown 是大语言模型最容易理解的格式之一。
关键信息:
数据以写作时页面显示为准。
二、它解决什么问题
很多人用 AI 处理文档时会遇到几个麻烦。
第一个是格式问题。PDF 复制出来的文本经常乱码,表格变成一坨,图片描述丢失。Word 文档好一点,但格式标记也会干扰 AI 理解。
第二个是效率问题。如果你有几十份 PDF 要处理,手动复制粘贴太慢了,而且容易出错。
第三个是结构问题。有些文档有清晰的标题层级、表格、代码块,直接复制会丢掉这些结构信息,AI 读起来就很费劲。
markitdown 把这些问题一次性解决了。它会把文档转成干净的 Markdown,保留标题、表格、代码块等结构,同时去掉多余的格式噪音。
三、支持哪些格式
它支持 15 种以上的文件格式:
基本上你能想到的文档格式,它都能处理。
四、怎么安装和使用
安装方式
打开 skill 的 SKILL.md 页面,把链接发给你的 AI 工具。
https://github.com/K-Dense-AI/claude-scientific-skills/blob/main/scientific-skills/markitdown/SKILL.md
然后直接说一句:
帮我安装这个 skill。
如果你的 AI 工具支持 skills,它会把文件下载到 skills 目录。装完后,就可以在对应任务里触发使用。
如果你用的是 LobeChat,也可以去 LobeHub 市场搜索 markitdown,点击安装。
命令行使用
安装完成后,最简单的用法是这样的:
# 基本转换 markitdown document.pdf > output.md # 指定输出文件 markitdown document.pdf -o output.md Python 代码使用
如果你想在脚本里用:
#CE9178">"color: #569CD6">from markitdown "color: #569CD6">import MarkItDown md = MarkItDown() result = md.convert(#CE9178">"document.pdf") #CE9178">"color: #569CD6">print(result.text_content) 就这么简单。
五、实际效果
为了让你更直观地感受差异,我准备了一个对比示例。
假设你有一份 PDF 文档,内容是一个简单的表格:
直接复制粘贴的效果
产品名称 价格 库存 苹果 5元 100 香蕉 3元 200 橙子 4元 150 看起来还行,但如果表格复杂一点,或者有合并单元格,复制出来就会乱。
用 markitdown 转换后的效果
<table style=#CE9178">"border-collapse: collapse; width: 100%; font-size: 14px;"> <thead> <tr> <th style=#CE9178">"background-color: #4472C4; color: white; padding: 10px; border: 1px solid #ddd; text-align: center; font-weight: bold;">产品名称</th> <th style=#CE9178">"background-color: #4472C4; color: white; padding: 10px; border: 1px solid #ddd; text-align: center; font-weight: bold;">价格</th> <th style=#CE9178">"background-color: #4472C4; color: white; padding: 10px; border: 1px solid #ddd; text-align: center; font-weight: bold;">库存</th> </tr> </thead> <tbody> <tr> <td style=#CE9178">"background-color: #F5F5F5; padding: 8px; border: 1px solid #ddd; text-align: center;">苹果</td> <td style=#CE9178">"background-color: #F5F5F5; padding: 8px; border: 1px solid #ddd; text-align: center;">5元</td> <td style=#CE9178">"background-color: #F5F5F5; padding: 8px; border: 1px solid #ddd; text-align: center;">100</td> </tr> <tr> <td style=#CE9178">"background-color: #FFFFFF; padding: 8px; border: 1px solid #ddd; text-align: center;">香蕉</td> <td style=#CE9178">"background-color: #FFFFFF; padding: 8px; border: 1px solid #ddd; text-align: center;">3元</td> <td style=#CE9178">"background-color: #FFFFFF; padding: 8px; border: 1px solid #ddd; text-align: center;">200</td> </tr> <tr> <td style=#CE9178">"background-color: #F5F5F5; padding: 8px; border: 1px solid #ddd; text-align: center;">橙子</td> <td style=#CE9178">"background-color: #F5F5F5; padding: 8px; border: 1px solid #ddd; text-align: center;">4元</td> <td style=#CE9178">"background-color: #F5F5F5; padding: 8px; border: 1px solid #ddd; text-align: center;">150</td> </tr> </tbody> </table> 区别在于,转换后的格式是标准的 Markdown 表格,AI 可以直接理解结构,不需要你再去解释"这是表格"。
对于长文档,差异更明显。一份 20 页的 PDF 论文,直接复制可能丢掉章节标题、图表说明、参考文献格式。用 markitdown 转换后,这些结构都会保留,AI 读起来更顺畅,你也能更快定位内容。
六、进阶功能
除了基本转换,它还有几个实用的进阶功能。
AI 增强的图片描述
如果你有 PPT 或图片,可以让 AI 自动生成图片描述:
#CE9178">"color: #569CD6">from markitdown "color: #569CD6">import MarkItDown #CE9178">"color: #569CD6">from openai "color: #569CD6">import OpenAI client = OpenAI( api_key=#CE9178">"your-api-key", base_url=#CE9178">"https://openrouter.ai/api/v1" ) md = MarkItDown( llm_client=client, llm_model=#CE9178">"anthropic/claude-opus-4.5" ) result = md.convert(#CE9178">"presentation.pptx") 这样转换出来的 Markdown 会包含对幻灯片图片的详细描述,而不只是"有一张图"。
批量处理
如果你有一堆文档要处理:
#CE9178">"color: #569CD6">from markitdown "color: #569CD6">import MarkItDown #CE9178">"color: #569CD6">from pathlib "color: #569CD6">import Path md = MarkItDown() pdf_dir = Path(#CE9178">"papers/") #CE9178">"color: #569CD6">for pdf_file "color: #569CD6">in pdf_dir.glob("*.pdf"): result = md.convert(str(pdf_file)) output_file = pdf_file.stem + #CE9178">".md" #CE9178">"color: #569CD6">with open(output_file, "w") "color: #569CD6">as f: f.write(result.text_content) YouTube 字幕提取
它还能提取 YouTube 视频的字幕:
md = MarkItDown() result = md.convert(#CE9178">"https://www.youtube.com/watch?v=VIDEO_ID") #CE9178">"color: #569CD6">print(result.text_content) 七、适合谁,不适合谁
适合
经常需要把 PDF、Word、PPT 喂给 AI 处理的人 需要批量转换文档的人 搭建知识库或文档检索系统的人 做文献综述、资料整理的研究人员 想让 AI 更好理解自己文档的人
不适合
只偶尔处理一两个文档的人,手动复制可能更快 需要保留原文档所有视觉样式的人(它只保留结构,不保留字体、颜色等) 处理高度定制化格式文档的人(比如特殊排版的技术手册)
限制
需要 Python 环境 复杂表格可能无法完美还原 扫描件 OCR 效果取决于原始图片质量
八、总结
markitdown 解决的是一个很具体但很常见的问题,如何把各种格式的文档变成 AI 更容易处理的 Markdown。
它的优势在于支持格式多、转换质量稳定、使用方式简单。如果你经常需要让 AI 处理文档,这个工具能帮你省掉很多手动整理的时间。
信息速查表
资源链接
LobeHub:https://lobehub.com/zh/skills/k-dense-ai-claude-scientific-skills-markitdown GitHub:https://github.com/K-Dense-AI/claude-scientific-skills SKILL.md:https://github.com/K-Dense-AI/claude-scientific-skills/blob/main/scientific-skills/markitdown/SKILL.md Microsoft markitdown:https://github.com/microsoft/markitdown
夜雨聆风