把14种文档格式统一转成Markdown,anydoc让文档转换一次搞定
【免费下载链接】anydocConvert Word, PowerPoint, Excel, OpenDocument, RTF, EPUB, CSV, and PDF to clean Markdown. Built in Rust, with Node.js and Python bindings.项目地址: https://gitcode.com/gh_mirrors/any/anydoc
你有没有过这样的时刻:收件箱里躺着一堆乱七八糟的文件,同事发来.docx方案,讲师分享.pptx课件,财务丢来.xlsx报表,还有.pdf电子书、.rtf老文档、.epub杂志……每个都要用不同软件打开,手机上排版还经常乱掉。anydoc 就是为解决这个痛点而生的文档转Markdown工具——不管你丢给它什么格式,它都吐出一份干净统一的 Markdown。
它到底是什么?先花30秒认识一下
anydoc 是一个用 Rust 写成的开源文档转换库。它的目标很朴素:把 Word、PowerPoint、Excel、OpenDocument、RTF、EPUB、CSV、PDF 共14 种格式的文档,全部转成统一的 GitHub-Flavored Markdown,并且做到"输入五花八门,输出一个样"。
它的核心信息可以浓缩成一张小卡片:
- 开发语言:Rust,纯本地运行,不依赖任何外部服务或 ML 模型
- 覆盖格式:doc/docx/docm、ppt/pptx/pps/ppsx/pot、xls/xlsx/xlsm/xlsb、odt/ods/odp、rtf、epub、csv、pdf
- 语言绑定:提供 Node.js、Python 绑定,还能编译成 WebAssembly 在浏览器里跑
- 性能表现:中位转换耗时在毫秒级,实测大批文档的平均转换时间不到 5ms
之所以快,是因为所有格式都先解析进同一个文档模型,再交给同一个 Markdown 序列化器输出——修好一次表格转义,rtf、odt、docx 全部跟着受益,而不是每个格式各写一套逻辑。
三步搞定:从下载到转出第一份Markdown
别被"Rust库"三个字吓到,上手真的不用五分钟。跟着下面三步走,你现在就能用上。
第一步:拿到代码
如果你想把仓库克隆到本地,一条命令即可:
git clone https://gitcode.com/gh_mirrors/any/anydoc第二步:装一个你顺手的绑定
用 Node.js 就装 npm 包,用 Python 就装 pip 包:
npm install @firecrawl/anydoc # 或者 pip install firecrawl-anydoc第三步:写三行代码完成转换
Python 版本最直观:
import anydoc markdown = anydoc.to_markdown("slides.pptx") print(markdown)Node.js 同样简洁:
import { toMarkdown } from '@firecrawl/anydoc'; const markdown = await toMarkdown('report.docx');连代码都不想写?直接用命令行,npx下载即用:
npx @firecrawl/anydoc slides.pptx -o slides.md看到没有,从安装到出结果,真的就这三步。Python 和 Node 的完整 API 说明分别放在 python/README.md 和 node/README.md,有需要再去翻。
三个真实场景:anydoc 能帮你省下什么
光说功能没感觉,我们挑三个日常最常遇到的场景,看看它是怎么派上用场的。
场景一:把课件PPT变成学习笔记 📝
复习考试时,几十页 PPT 翻来翻去很痛苦。用 anydoc 转成 Markdown 后,每页幻灯片变成清晰的标题与列表结构,直接粘进笔记软件,或者交给 AI 帮你总结重点。相关的 PPT 解析逻辑在 src/formats/ppt/ 与 src/formats/pptx/ 目录,感兴趣可以顺着看。
场景二:把散落各处的表格汇总成统一报表 📊
月初要交报表,邮箱里躺着三张不同来源的表格,有.xls老格式,有.xlsx,还有一份.csv。用 anydoc 各自转成 Markdown 表格后,粘贴、合并、统一格式一气呵成,不用再开着 Excel 来回复制。表格渲染相关的实现可以参考 src/render/markdown/table.rs。
场景三:把PDF电子书变成可检索的纯文本 📖
遇到扫描版 PDF 它确实无能为力,但普通文字版 PDF 完全没有问题——转出来的文本可以全文搜索、复制引用,还能塞进自己的知识库做检索。PDF 的转换入口在 src/formats/pdf.rs。
一个加分项:anydoc 不只是看文件后缀,而是直接从文件内容识别格式(PDF 文件头、RTF 起始标记、ZIP 包声明等)。所以哪怕文件扩展名被改乱了,它照样能认出真身、正确转换。
新手最常问的几个问题
Q:转换出来的 Markdown 会不会丢失格式信息?A:常见的排版元素都会保留:标题带锚点、加粗斜体删除线、表格含合并单元格、列表保留原始编号、脚注尾注也有。图片没法嵌进纯文本,会转成 alt 文本占位,原始字节仍可通过文档模型访问。
Q:PDF 转换需要 OCR 或外部服务吗?A:不需要。文字版 PDF 完全本地转换,不需要联网,也不用装任何 OCR 组件。如果你手里是扫描件,那就属于它的能力边界之外了。
Q:不同格式的转换质量一样吗?A:这正是 anydoc 的设计目标——所有格式共享同一套输出管线,doc 老古董和 pptx 新文件转出来的 Markdown 风格一致。项目在 bench/README.md 里放了与 LibreOffice、pandoc、mammoth 等工具的横向对比数据,覆盖格式最全,速度也明显领先。
Q:转坏了会怎样?A:只有文件确实无法产出有效内容时才会报错,而且错误类型分得很细:加密的、格式损坏的、不支持的、超过资源限制的,各归各类,方便你在批处理时逐个跳过、记录原因,不会让一个坏文件拖垮整个流程。
动手试一次,比读十篇文章都值
一句话总结:anydoc 把"格式转换"从一件让人头疼的杂事,变成一行代码就能完成的日常操作——无论你是想整理课件、汇总报表,还是给 AI 应用喂干净的文本数据,它都能给你一份统一、干净、可复用的 Markdown。
官方仓库里还附带了一个 Agent Skill(skills/convert-documents-to-markdown/SKILL.md),能让你的 AI 助手直接读懂办公文档。今天下午就花五分钟,把那几个吃灰的文档拿出来转一转——你可能会惊讶,原来文档处理可以这么省心。
【免费下载链接】anydocConvert Word, PowerPoint, Excel, OpenDocument, RTF, EPUB, CSV, and PDF to clean Markdown. Built in Rust, with Node.js and Python bindings.项目地址: https://gitcode.com/gh_mirrors/any/anydoc
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考