微软开源的文档转换md工具,让我告别了复制粘贴的噩梦
老板扔过来一个PDF,说”把这个整理成Markdown放到知识库里”。你打开PDF,选中文字,复制,粘贴到编辑器,发现格式全乱了。表格变成了一坨,图片没了,代码块的缩进没了。然后你花了一下午手动调整格式,一边调一边骂:这活凭什么要我干?
更惨的是,你以为PDF已经够难搞了,直到你遇到了PPT。
每张幻灯片截图,然后在Markdown里写”第3页:产品介绍”,再配上一张图。20页的PPT能搞你两个小时,最后老板看了一眼说”哦,我就是想看看内容,不用这么正式”。
那一刻,你真的想辞职。

我之前的 workflow,堪称当代酷刑
说实话,在发现这个工具之前,我的文档转换流程是这样的:
场景一:PDF转Markdown
老板发来一份产品手册,50页,要整理到公司的知识库。
我的操作:打开PDF → 选中文字 → 复制 → 粘贴到VS Code → 发现标题全变成正文了 → 手动加# → 发现表格变成了一行一行的文字 → 手动画|和- → 发现代码块的缩进没了 → 手动按Tab → 发现图片根本复制不出来 → 一张张截图保存 → 插入Markdown → 最后花了整整一个下午。
效率:大约1小时处理10页,还是简单的文档。
场景二:Word转Markdown
技术经理写了一份需求文档,Word格式,要放到GitHub Wiki上。
我的操作:Word另存为HTML → 用pandoc转Markdown → 发现pandoc把Word的样式全转成内联HTML标签了 → 手动清理<span>和<div> → 发现表格边框全没了 → 重新画表格 → 发现编号列表变成了1. 2. 3.和*混用 → 统一格式 → 最后又花了两个小时。
效率:1小时起步,格式越复杂时间越长。
场景三:PPT转Markdown
产品经理做了一份技术方案PPT,25页,要转成文档存档。
我的操作:每张幻灯片截图 → 在Markdown里写”## 第1页 封面” → 插入截图 → “## 第2页 背景” → 插入截图 → 重复25次 → 发现演讲者备注也要保留 → 打开PPT的备注视图 → 一页页复制备注 → 粘贴到对应位置。
效率:2小时处理20页,手都酸了。
场景四:Excel转Markdown
运营同事给了一份数据报表,3个Sheet,要放到技术文档里。
我的操作:选中表格 → 复制 → 粘贴到在线表格转Markdown工具 → 发现合并单元格的地方全乱了 → 手动调整 → 发现数字变成了字符串 → 手动改 → 3个Sheet重复3遍。
效率:30分钟起步,数据量大的话更久。
说实话,这套流程我干了三年。三年里,我复制粘贴了不知道多少次,手动调整格式调到眼睛疼。我一直觉得,这世上肯定有个更好的办法,但我就是没找到。
直到上周。
发现MarkItDown:微软终于干了件人事
上周在GitHub trending上闲逛,看到一个项目叫MarkItDown,微软开源的,155,741个Star,Python写的,最近还在更新(2026年6月19日刚更新过)。
我心想,又是微软的玩具项目吧?点进去一看,简介就一行字:”A lightweight tool to convert various file types to Markdown.”
各种文件类型转成Markdown?我眼睛亮了。
再看支持格式:
-
PDF ✓ -
Word(.docx) ✓ -
PowerPoint(.pptx) ✓ -
Excel(.xlsx) ✓ -
图片(带OCR) ✓ -
HTML ✓ -
XML ✓ -
甚至音频文件的元数据都能提取 ✓
我当时就想,这不会又是那种”理论上支持,实际上一用就崩”的工具吧?
结果一试,真香。
实际使用:一行命令,世界清净了
安装简单得离谱:
pip install markitdown
然后?然后就没有然后了。一行命令搞定一切。
PDF转换:终于不用手动调格式了
以前我最怕转PDF,因为PDF是排版格式,不是结构格式,里面的”标题”其实就是字号大一点的文字,”表格”其实就是画了一堆线。复制出来全是一坨。
用MarkItDown:
markitdown document.pdf > document.md
等个几秒钟,打开生成的Markdown文件,我惊了:
-
标题层级保留了:PDF里的大标题变成了 # 标题,二级标题变成了## 标题,层级关系完全正确。 -
表格转成Markdown表格了:虽然复杂表格还有点问题(后面会说),但普通表格的列对齐、表头都正确转换了。 -
图片提取为单独文件了:PDF里的图片被自动提取出来,Markdown里用相对路径引用,不用再一张张截图了。 -
代码块缩进保留了:技术文档里的代码片段,缩进和换行都完好无损。
我试了一份30页的技术白皮书,以前至少要搞3个小时,现在30秒搞定。剩下的时间我喝了两杯咖啡,还打了把王者荣耀。
Word转换:效果比PDF还好
Word本身就有结构化信息(标题样式、表格、列表),所以转换效果比PDF更好:
markitdown report.docx > report.md
-
Word里的”标题1″”标题2″样式,完美映射到Markdown的 #和##。 -
表格转换几乎完美,连单元格对齐方式都能保留。 -
编号列表和项目符号列表,转换后格式正确。 -
嵌入的图片自动提取,路径自动处理。
我转了一份需求文档,Word里用了各种样式,转出来的Markdown结构清晰,直接就能放到GitHub Wiki上,几乎不用手动调整。
PPT转换:终于不用一张张截图了
这个是我最惊喜的。以前转PPT是噩梦,现在:
markitdown presentation.pptx > presentation.md
-
每页幻灯片转成一级标题:第1页变成 # Slide 1,第2页变成# Slide 2,结构清晰。 -
页面内容转成正文:文本框里的内容按顺序排列,不会乱。 -
演讲者备注也保留了:PPT的备注信息被单独提取出来,方便对照。 -
图片自动提取:PPT里的配图自动保存为单独文件。
我转了一份25页的技术方案PPT,以前要2小时,现在10秒。生成的Markdown文件直接提交到GitHub,同事还以为我加班到半夜整理的。
Excel转换:数据报表一键搞定
Excel转换也很实用:
markitdown data.xlsx > data.md
-
每个Sheet转成单独的Markdown表格:Sheet1、Sheet2分别转换,不会混在一起。 -
表头自动识别:第一行作为表头,用Markdown表格语法正确渲染。 -
数据格式尽量保留:数字、日期、文本都能正确转换。
我转了一份运营数据报表,3个Sheet,以前用在线工具要折腾半天,现在一行命令搞定,直接贴到飞书文档里。
图片OCR:会议纪要也能转了
这个是我意外发现的功能。有时候开会,同事把白板拍下来发到群里,或者收到一张带文字的图片,以前只能手动打字,现在:
markitdown meeting_notes.jpg > meeting_notes.md
MarkItDown会调用OCR识别图片里的文字,转成Markdown。虽然识别准确率取决于图片质量,但对付清晰的截图和照片完全够用。
我试了一张会议纪要的照片,手写体不太行,但打印体和屏幕截图识别率很高。以后再也不用对着图片一个个字敲了。
HTML和XML转换:爬虫和数据处理的神器
除了办公文档,MarkItDown还能处理HTML和XML,这个对程序员特别有用:
markitdown page.html > page.md
markitdown data.xml > data.md
-
HTML转Markdown:网页内容一键转成干净的Markdown,适合做内容归档或者做知识库。比直接复制网页内容干净多了,不会带一堆CSS样式和广告代码。 -
XML转Markdown:配置文件、数据交换格式的XML文件,转成Markdown后更容易阅读和编辑。
我有一次需要把一个老项目的API文档(HTML格式)整理到新的文档系统里,用MarkItDown几分钟就搞定了,以前这种活至少要搞半天。
对比其他工具:没有对比就没有伤害
为了客观评价,我把我用过的工具都拉出来对比了一下:
|
|
|
|
|
|
|
|
|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
说实话,pandoc其实也不差,但它更像是一个”格式转换器”,而不是”结构提取器”。它会把Word的样式转成HTML标签嵌在Markdown里,最后还是要手动清理。MarkItDown的优势在于它真的理解文档结构,转出来的是干净的Markdown,不是裹着Markdown外衣的HTML。
还有一个我不得不提的点:MarkItDown是Python写的,安装就是一句pip install,没有任何依赖地狱。相比之下,pandoc要下载安装包,配置环境变量,有时候还要处理各种依赖冲突。对于我这种”能少装一个软件就少装一个”的人来说,MarkItDown真的太友好了。
而且MarkItDown支持在Python代码里直接调用,不是只能用命令行。如果你需要在自己的项目里集成文档转换功能,可以这样写:
from markitdown import MarkItDown
md = MarkItDown()
result = md.convert("document.pdf")
print(result.text_content)
几行代码就能集成到你的应用里,做自动化文档处理、做批量转换工具、做文档管理系统,都很方便。
我的实际使用场景:这四个场景救了我
场景一:产品手册进RAG知识库
我们公司在做RAG(检索增强生成)系统,需要把各种产品文档转成Markdown存到向量数据库里。以前这些文档都是PDF格式,我要一个个手动转,一天转不了几份。
现在用MarkItDown批量处理:
for file in *.pdf; do
markitdown "$file" > "${file%.pdf}.md"
done
一个文件夹的PDF,几分钟全部转成Markdown,直接丢进知识库。RAG系统的召回率都提高了,因为格式干净了,分片效果更好。
场景二:技术方案PPT进GitHub Wiki
我们团队的技术方案评审用PPT,但归档和查阅用GitHub Wiki。以前PPT和Wiki是两套东西,不同步,经常有人看过时的版本。
现在评审完PPT,直接:
markitdown design_review.pptx > wiki/design_review.md
然后git push,Wiki就更新了。PPT和Wiki永远同步,大家也不用打开PPT软件就能看方案。
场景三:需求文档进飞书
合作方的需求文档经常是Word格式,我们要转到飞书文档里做评审和批注。以前要手动复制粘贴,格式还要重新调。
现在:
markitdown requirements.docx > requirements.md
然后直接粘贴到飞书文档,因为都是标准Markdown,飞书能正确识别标题、表格、列表,几乎不用二次调整。
场景四:会议纪要图片转文字
有时候开会没带电脑,用手机拍白板或者拍屏幕上的文档。以前这些图片就躺在相册里,要找的时候翻半天。
现在:
markitdown whiteboard_photo.jpg > notes/2026-06-19-meeting.md
文字提取出来,按日期归档,搜索也方便。虽然OCR不是100%准确,但对付会议纪要和简单文档完全够用,稍微校对一下就行,比从头打字快多了。
谁适合用这个工具?
用了这段时间,我觉得这几类人特别适合用MarkItDown:
程序员和技术写作者:经常要把各种格式的技术文档转成Markdown放到GitHub、GitLab或者自建Wiki上。以前要手动调格式,现在一行命令搞定,省下的时间可以写代码或者写更多文档。
产品经理和项目经理:经常收到各种格式的需求文档、方案文档,需要整理归档。用MarkItDown统一转成Markdown,方便版本管理和团队协作。
知识库管理员:负责维护公司的知识库或者文档中心,需要处理大量不同格式的文档。批量转换功能简直是救命稻草。
学生和研究者:看论文、整理资料的时候,经常要把PDF论文、PPT课件转成文本格式做笔记。用MarkItDown转换后,可以直接在Markdown编辑器里做标注和整理。
任何被复制粘贴折磨过的人:如果你曾经花过一整个下午手动调整文档格式,这个工具就是为你准备的。
坑:这些坑我替你踩过了
当然,MarkItDown也不是万能的。用了一段时间,我发现几个坑:
坑一:扫描版PDF需要额外处理
如果你的PDF是扫描版(也就是每一页都是图片,没有文字层),MarkItDown本身不做OCR,转出来是空的或者只有图片文件名。
解决办法:先用OCR工具处理,比如Tesseract,或者直接用支持OCR的PDF工具。MarkItDown对图片文件本身支持OCR,但对PDF里的嵌入图片不处理。
# 对扫描版PDF,先用其他工具OCR,或者把PDF转成图片再处理
# 这不是MarkItDown的锅,是所有PDF转换工具的通病
坑二:复杂表格会乱
如果PDF或者Word里有合并单元格、嵌套表格这种复杂结构,MarkItDown转出来的Markdown表格可能会错位或者丢失合并信息。
解决办法:简单表格完全没问题,复杂表格转完后手动检查一下,或者用HTML表格语法保留复杂结构。不过说实话,这种复杂表格就算手动复制粘贴也一样会乱,MarkItDown至少省了你80%的工作量。
坑三:中文编码偶尔有问题
我遇到过一次,Word文档里的中文转出来是乱码。排查发现是原文档的编码有问题,不是MarkItDown的锅。但确实需要注意,转完后打开文件检查一下中文显示是否正常。
解决办法:转完后用VS Code或者记事本打开,确认中文正常。如果有问题,用chardet检测原文件编码,或者先用其他工具修复编码。
坑四:特殊格式丢失
PDF里的特殊排版(比如文字绕排、多层嵌套的文本框)转换后可能会变成纯文本,顺序不一定完全正确。Word里的页眉页脚、脚注尾注也不会保留。
解决办法:这些属于”版式信息”,Markdown本来也不支持,丢失是正常的。如果确实需要保留版式,那还是保留原文件,Markdown只用来提取内容。
写在最后
说实话,MarkItDown不是什么黑科技,它就是一个把各种文档转成Markdown的工具。但正是这个”简单”的功能,解决了我工作中最烦人的重复劳动。
我以前每周至少要花半天时间在文档格式转换上,现在可能只需要10分钟。省下来的时间,我可以写代码、可以学新技术、可以早点下班陪家人。
一个工具的价值,不在于它有多复杂,而在于它能不能帮你省时间。省下来的时间,可以用来做更有价值的事。
这不是广告,微软也不会给我打钱。就是觉得好用,分享一下。如果你也跟我一样,被复制粘贴折磨过,试试MarkItDown,也许能救你一命。
至少,我再也不用花一下午手动调表格格式了。
项目地址:https://github.com/microsoft/markitdown
安装命令:pip install markitdown
使用命令:markitdown 你的文件 > 输出.md
就这么简单。
夜雨聆风