工具测评 · FENGDAO AI RESEARCH

把 Word、PPT、Excel 一锅端成 Markdown:anydoc 凭啥一周涨 1.1 万星

一个 Rust 内核、Node.js 与 Python 双绑定的文档转 Markdown 工具,把最常见的办公文档一锅端。

2026年8月8日4 分钟读完冯导AI研究院19 次阅读#开源工具#文档处理#Rust
把 Word、PPT、Excel 一锅端成 Markdown:anydoc 凭啥一周涨 1.1 万星
anydoc 用一个统一内核覆盖主流办公文档,吞吐和稳定性都够用,是当前文档转 Markdown 链路里值得认真考虑的选项。

适合:需要批量把 Word、PPT、Excel、PDF 等办公文档清洗成 Markdown 的开发者和数据团队。

先说结论

anydoc 干的事很朴素:把 Word、PowerPoint、Excel、OpenDocument、RTF、EPUB、CSV、PDF 这些让人头大的格式,统统整理成可读、可索引、可喂给下游的 Markdown。一周拿到 11903 颗星,原因不复杂——这类活儿长期缺一个好用的轮子,anydoc 用 Rust 做核心,吞吐和稳定性都立得住,再加上 Node.js 和 Python 两套绑定,正好踩中开发者和数据团队的真实工作流。

真正的问题

做内容、做知识库、做 RAG 的人都会撞同一堵墙:源文档是 Word、PPT、Excel、PDF,里面还塞着图片、表格、页眉页脚,丢给下游模型前必须先清洗一遍。常见痛点集中在四个地方。

第一,工具散装。市面上 PDF 用一套库,Word 用另一套,PPT 又换一套,每个库的输出格式都不一样,管道拼起来非常难受。第二,表格塌方。Word 和 PDF 里的表格,转出来经常变成一坨乱码文本,列对不齐,单元格里还混着换行。第三,性能跟不上。Python 系的方案对大体量 PDF 和 PPT 容易卡成 PPT,动辄几十秒一份。第四,绑定不友好。要么只能跑 Node,要么只能跑 Python,二开总要在两边来回绕。

anydoc 的回应方式也很直接:把这些格式收拢到一个 Rust 内核,再向外吐 Markdown,表格、列表、标题层级尽量保留原意,命令行、Node API、Python API 三条路都能走。

怎么做更省力

实操层面,把 anydoc 接进现有工作流有三档用法可以选。

用法适合人群上手成本适用规模
CLI 命令行运维、脚本玩家中小批
Node.js 绑定前端、全栈团队中大批
Python 绑定数据、AI工程团队中大批

轻量场景里,直接命令行跑批转换最省事,把目录遍历和并发参数调一调就行。Node.js 绑定适合已有 Web 服务要内嵌转换能力的团队,写一个 Express 或 Fastify 接口,把上传文件直接转成 Markdown 返回。Python 绑定则是数据团队的最优解,可以把 anydoc 和清洗、入库、向量化串成一条管线,少一次格式来回。

如果你懒得自己搭管线,也可以用现成工具先把零散素材整理好,再交给 anydoc 这类转换器收尾。比如把 PDF、Word、PPT 先丢进文件转 Markdown统一整理格式,再用 anydoc 做最终清洗与归档,效率会更稳。

哪些坑要避开

再好的工具也不是万能的,使用时要盯着几个现实边界。

第一,扫描件 PDF 识别率有限。原生扫描件没有文字层,anydoc 这类基于文档结构的转换器也救不了,需要先过 OCR。第二,复杂排版会有损失。多栏排版、文本框嵌套、艺术字、公式密集的页面,转出来大概率要再人工校对一次,不要指望零修改。第三,表格不是百分百完美。合并单元格、单元格内嵌图、跨页表格这些极端情况,转出来仍可能错位,使用前最好抽样检查。第四,版本与依赖。Rust 工具链、Node 版本、Python 版本要在部署前对齐,不然生产环境容易踩坑。

还有一条容易被忽略:转换完的 Markdown 不要直接当最终交付物。下游无论是喂给模型、做知识库,还是发到 CMS,都应该再做一次结构校验和内容抽查,把残留乱码、错位表格、断裂段落挡在门外。

现在就能动手

第一步,挑一个最小场景试水。拿一份真实的 Word 文档、一份 PPT、一份带表格的 PDF,分别用 CLI、Node、Python 各跑一次,记录输出质量和耗时。第二步,确认表格、标题、列表的还原度,挑出必须人工补的位置,写进团队的转换检查清单。第三步,再把 anydoc 接到现有流水线里,CLI 走批量,Python 走数据管线,Node 走 Web 服务,三条路各司其职。剩下的,就是把它当成日常工具,老老实实跑下去。

继续阅读