14 种格式、亚毫秒级速度、开源免费,Firecrawl 团队的又一力作
说个可能你也经历过的场景:手上有一堆 Word、PPT、Excel 文件,想喂给大模型做分析,或者想整理成文档放进知识库。第一反应是什么?我之前是用 LibreOffice 转 PDF,再丢给一些在线工具提取文本。折腾一圈下来,格式乱七八糟,表格变成一堆散落的文字,列表层级全丢了,更别提什么脚注和批注了。
直到最近看到 Firecrawl 团队开源的 anydoc,我才意识到,文档转 Markdown 这件事,原来可以做得这么干净利落。
一个工具,14 种格式
anydoc 是一个用 Rust 写的文档转换库,核心功能就一句话:把各种办公文档转成干净的 GitHub Flavored Markdown。
支持的格式列表挺长的:Word(.doc.docx.docm)、PowerPoint(.ppt.pptx等 7 种变体)、Excel(.xls.xlsx.xlsm.xlsb)、OpenDocument(.odt.ods.odp)、还有 RTF、EPUB、CSV、PDF。
注意,PDF 也是原生支持的,不需要额外装什么 OCR 工具。文本型 PDF 直接转,扫描件才需要 OCR(这个走 Firecrawl 的云端 API)。
转换速度到底有多快?
我一开始看到"中位数 <5ms"这个数据,心想这不扯淡吗?一个 Word 文档,光读取都不止 5ms 了吧。
后来仔细看了他们的测试方法:在 Ryzen 9 9950X 上,排除进程启动时间,纯转换时间的中位数是 4.4ms。对比一下,LibreOffice 的中位数是 1129ms——anydoc 快了差不多 250 倍。
它快的原因很简单:纯 Rust 实现,不调用外部服务,不依赖 ML 模型,不开子进程。整个链路在内存里跑。
跟其他工具有什么不一样?
市面上做文档转 Markdown 的工具不少,我之前用过 pandoc、mammoth、markitdown。pandoc 只支持 5 种格式,碰到 .ppt没办法。mammoth 只处理 Word。markitdown Excel 表格转换效果一般。
anydoc 最打动我的不是速度,而是一致性。因为所有格式汇入同一个文档模型,不管输入是 2003 年的 .doc还是昨天的 .pptx,输出的 Markdown 在标题锚点、表格转义、脚注格式、列表缩进这些细节上完全一致。
Firecrawl 团队用 100 个真实文档做了评测,Claude Sonnet 5 做 LLM Judge:
anydoc:94 分(14 种格式全覆盖)
LibreOffice:87 分(12 种格式)
unstructured:58 分(8 种格式)
markitdown:33 分(6 种格式)
pandoc:34 分(5 种格式)
而且 anydoc 在每个单独格式上的得分都是最高的。不是某几种格式强、其他拉胯,而是全部拉通。
实际用起来是什么体验
anydoc 提供四种使用方式:Rust 原生、Node.js、Python、WebAssembly 浏览器版。对大多数开发者,Node 和 Python 就够了。
命令行直接用:
# 最简单的方式
npx @firecrawl/anydoc report.docx
# 输出到文件
npx @firecrawl/anydoc slides.pptx -o slides.md
# 从标准输入读取
npx @firecrawl/anydoc - --format csv < data.csvPython 里调用:
import anydoc
markdown = anydoc.to_markdown("report.docx")
withopen("report.docx", "rb") as f:
markdown = anydoc.to_markdown_bytes(f.read())Python 绑定转换时会释放 GIL,不会阻塞其他线程。Node 版本同样不阻塞事件循环。
适合什么场景?
1. AI Agent 读取文档
一行命令让 Claude Code、Cursor 等 AI 工具读取任意办公文档:npx skills add firecrawl/anydoc。本地运行,不存在数据泄露风险。
2. 文档批量入库
做知识库、RAG 系统,几千个文档批量转换,可能比启动 LibreOffice 的时间还短。格式检测基于文件内容而非扩展名,标错扩展名也能正确识别。
3. 内容迁移
从老旧系统导出的 Word、RTF 文件,转成 Markdown 放到 GitHub 或发布到博客。
一些需要注意的地方
扫描件 PDF 处理不了,需要 OCR 走 Firecrawl 付费 API。CSV 没有文件签名需要手动指定格式。转出来是 Markdown 不是 HTML,不能保留精确排版。
亮点:WebAssembly 版本可在浏览器直接运行,文件不离开本机。图片的 alt text 渲染到 Markdown,原始字节保留在文档模型上。
最后说两句
anydoc 让我觉得特别舒服的一点是,它知道自己的边界。不搞花里胡哨的 AI 增强,不假装能处理扫描件,就是把"文档转 Markdown"这一件事做到极致——14 种格式、亚毫秒级速度、结构完整保留。
如果你经常需要处理各种办公文档,或者在做跟文档相关的 AI 应用,anydoc 值得一试。开源、MIT 协议、不依赖任何外部服务,试错的成本几乎为零。
项目地址:github.com/firecrawl/anydoc
夜雨聆风