# Firecrawl 开源了文档转 Markdown 引擎 anydoc，能以极快速度将14种办公格式统一转换为干净 Markdown，为文档处理提供高效工具

- 来源：Meng Shao
- 发布时间：2026-08-05 09:46
- AIWatch 分数：58
- AIWatch 标记：当日精选
- AIWatch 链接：https://aiwatch.icu/events/evt_01kz8sje46bvbawphk0qdpk9h0
- 原文链接：https://x.com/shao__meng/status/2084954151306621312

## 精选理由

常规快讯，保留列表

## AI 摘要

Firecrawl 开源了文档转 Markdown 引擎 anydoc，能以极快速度将14种办公格式统一转换为干净 Markdown，为文档处理提供高效工具。

## 正文

anydoc @firecrawl
https://github.com/firecrawl/anydoc

Rust 语言编写，能把 Word、PowerPoint、Excel、OpenDocument、RTF、EPUB、CSV、PDF 等 14 种办公文档格式，统一转换为干净的 GitHub 风格 Markdown (GFM)，中位转换速度不到 5 毫秒。

它同时提供 Rust crate、Node.js 包和 Python 包三种形态。没有 ML 模型、没有外部服务依赖，以单一引擎覆盖全部主流办公格式，并保证输出一致性。它同时是 Firecrawl 商业产品 Firecrawl Parse 的底层引擎。

# 性能与质量

官方 benchmark 用 100 份真实文档对比了 6 个竞品（libreoffice、unstructured、markitdown、pandoc、docling、mammoth），结果相当突出：
· 速度：中位 4.7ms，比第二快的 mammoth(52.5ms）快一个数量级，比 LibreOffice(1129ms）快约 240 倍；
· 格式覆盖：14/14，是唯一全覆盖的工具（LibreOffice 12/14，其余 8/14 或更少）;
· 质量：综合得分 80，除 EPUB 外在所有可比格式上均为最高。

# 核心架构决策是 "统一文档模型 + 单一序列化器"

原始字节
├─► 格式探测（基于内容特征，而非扩展名）
├─► 各格式专属解析器（doc/docx/ppt/pptx/xls/xlsx/odt/rtf/epub/csv）
│ └─► Document 共享模型（块、行内元素、表格、脚注、内嵌资源）
│ └─► 唯一的 GFM 序列化器 → Markdown
└─► PDF 单独走 pdf-inspector 库 → Markdown

这个设计带来两个实际收益：
1. 输出行为完全一致。无论是 2003 年的 .doc 还是昨天的 .pptx，表格转义、标题锚点、脚注处理都走同一条序列化路径。
2. 修复一次、处处生效。一个针对 docx 的表格转义修复，自动惠及 rtf、odt 等所有格式。这是典型的"漏斗式架构"红利，也是它能用较少代码（Rust 约 64 万字节，规模适中）覆盖 14 种格式的关键。

另外几个工程细节值得关注：
· 内容级格式探测：通过 PDF 头、RTF 开组标记、OLE 流名、ZIP 包内 mimetype 等规范定义的特征判断格式，文件扩展名标错了也能正确转换；只有 CSV 这种无签名格式需要显式指定。
· 内嵌资产不丢失：图片以 alt 文本形式进入 Markdown，原始字节保留在文档模型中并标注 MIME 类型；带外链的图片直接转成标准 Markdown 图片语法。
· 绑定层做得克制：Node.js 侧跑在 libuv 线程池上不阻塞事件循环；Python 侧释放 GIL。TypeScript 类型和 Python stub 都随包发布。
