ARTICLE · 1113625
效率工具anydoc实测,14种文档格式本地一键转Markdown
摘要
手头一堆 Word、PPT、Excel,想丢给大模型,卡点往往不是「转不了」,而是每种格式换一套工具。Firecrawl 开源的 anydoc 说一套 Rust 模型吃 14 种格式。我在 Windows 上从下载跑到 CLI:预编译半小时内能用;源码 cargo test 是 296 通过、0 失败。下文没标出处的数,都是本机敲出来的。

— CLI首次运行

— 多种办公文档格式汇入统一Markdown输出
01 — 动因
我为什么测它
写评测、攒 Agent 材料时,docx 一套、xlsx 一套、扫描 PDF 再换 OCR,来回切工具很烦。anydoc 还带 Node / Python / CLI / 浏览器 WASM,看起来能省事。我只想搞清楚三件事:Windows 好不好装、本地转得靠不靠谱、扫描件能不能真离线。
02 — 部署
部署过程
仓库地址:
https://github.com/firecrawl/anydoc
1. 拉代码
优先 git:
git clone https://github.com/firecrawl/anydoc.git
直连 github.com:443 超时或失败时,我改拉源码包,这次能用:
# PowerShell
Invoke-WebRequest -Uri "https://codeload.github.com/firecrawl/anydoc/zip/refs/heads/main" -OutFile anydoc.zip
Expand-Archive anydoc.zip -DestinationPath .
Rename-Item anydoc-main anydoc
2. 跑起来(预编译,不必先编 Rust)
npm install -g @firecrawl/anydoc
anydoc -V # 本次为 0.2.4
anydoc .\tests\fixtures\docx\text.docx
Python:pip install firecrawl-anydoc。国内镜像 wheel 报 403 就换官方源:
pip install --index-url https://pypi.org/simple firecrawl-anydoc
要跑源码测试再装 Rust,仓库根目录执行 cargo test(本次 296 通过 / 0 失败)。

— SDK安装与最小示例
装完看体积:@firecrawl/anydoc@0.2.4 大约 7.95 MB,里头几乎全是 anydoc.win32-x64-msvc.node(约 7.89 MB)。

— 安装产物体积
03 — 实测
实际跑起来效果如何
仓库自带 fixture,挨个敲了一遍。
text.docx 转 Markdown,标题、加粗/斜体/删除线、嵌套列表都在,CLI EXIT=0。sheet.csv 表格正常;pres.pptx、sheet.xlsx 也能出稿。文本 PDF text.pdf 本机可转。扫描 PDF handmade-scanned.pdf直接拒了:提示 all 2 pages need OCR,EXIT=3,和文档写的一致。

— 典型任务:DOCX转换与OCR拒绝
速度别跟官方 README 那行中位 4.4ms 对号入座——那是排除进程启动、私有语料的库内口径。我这边全局装好 anydoc,同一 docx 预热后连跑 10 次,中位大约 105ms(含启动),更像你终端里敲一次的感觉。官方 WASM Demo 本机转同一 text.docx:1295 字符、28ms,页面没报错。

— 官方Demo首页

— Demo转换结果
cargo test 汇总是 296 passed / 0 failed / 1 ignored(ignored 那条要本地私有 samples/)。Node toMarkdown、Python to_markdown 对同一 fixture 大概 1295 / 1291 字符,结构对得上。仓库里有 bench/,语料标明不可再分发,LibreOffice / markitdown / pandoc 那张总表我没在本机重跑;README 里质量分、格式覆盖那些,当官方自测看就行。
04 — 槽点
槽点与不足
扫描 PDF 别当「完全本地」。文本层 PDF 可以离线;扫描件默认拒绝,要 OCR 就 --ocr hosted 走 Firecrawl Parse。本机没挂本地 OCR 钩子。文件绝不能出网的话,扫描件这条先别押在它身上。

— 扫描件无法完全离线,OCR需走外部托管服务
再说速度:库内毫秒级和「每次拉起进程」差一个数量级。偶尔批一把还行;热路径里反复 npx anydoc,启动时间会盖过转换本身。要长期服务,嵌 Node / Python / Rust API 比每次起 CLI 靠谱。
05 — 对比
和同类工具怎么比
跟 markitdown、pandoc、docling 比,anydoc 的爽点是一套命令怼办公格式:本机 fixture 里 docx / pptx / xlsx / csv / 文本 PDF 都能收成统一 Markdown,不用为每种格式换栈。

— 单一工具整合多格式转换,替代多套独立工具
体感就那两个数:CLI 含启动大约 105ms,浏览器 Demo 同一 docx 大约 28ms。官方还写过库内中位 4.4ms、综合质量分 81、格式 14/14——尺子不同,别拿来跟终端体感硬比。
混杂办公文档进 LLM、要一份结构稳的 Markdown,它够用。扫描件必须完全离线 OCR,或者你只抠某一种格式到极致,就别指望它包圆。
一句话:anydoc 适合把混杂办公文档快速收成统一 Markdown;文本稿本地够用,扫描件别指望完全离线。
我是老刘,普通人的AI职场副业指南:拆解AI副业项目,分享AI提效工具和一人公司玩法,帮你多赚一点、早下班一点。
如果你觉得今天这篇有收获,欢迎点赞、在看、转发三连,我们下篇见