PDF 转 Markdown - 免费在线转换,文件不出设备
把 PDF 里的标题、段落、列表、表格原样提取成干净的 GitHub Flavored Markdown——文本型 PDF 本地直转,无需 OCR 服务,中位耗时不到 5 毫秒。转出的 Markdown 结构完整,可以直接阅读、进版本库,或者喂给大模型。
下面三种方法按场景选:图省事用页面里的在线转换器,做批量处理用 CLI,集成进项目用 API。
在线免费转换(文件不出设备)
转换器由 @firecrawl/anydoc-wasm 驱动,在你的浏览器里通过 WebAssembly 完成转换:文件不上传任何服务器,断网也能用。拖入 PDF,立刻得到 Markdown,可复制或下载 .md 文件。
把文档拖到这里,或点击选择文件
转换在浏览器本地完成,文件不会上传到任何服务器
三种方法:按场景选
方法一:在线转换器——免安装,最快上手
就是上面的转换区块。适合偶尔转几份文档、或者不想装任何东西的场景。它和命令行、API 用的是同一个转换内核,输出结果一致。
方法二:CLI 一行命令
装好 Node.js 后无需任何项目配置,一条命令完成转换:
# 转换 PDF,Markdown 输出到文件
npx @firecrawl/anydoc report.pdf -o report.md
# 从 stdin 读取(适合管道场景)
npx @firecrawl/anydoc - --format pdf < report.pdfnpx 首次运行会下载 CLI 包,之后就是本地执行。更多用法见新手入门。
方法三:API 集成(Node.js / Python / Rust)
把 PDF 转 Markdown 嵌进你自己的代码,三个运行时同一个 API:
// Node.js:npm install @firecrawl/anydoc
import { toMarkdown } from '@firecrawl/anydoc'
const markdown = await toMarkdown('report.pdf')# Python:pip install firecrawl-anydoc
import anydoc
markdown = anydoc.to_markdown("report.pdf")// Rust:cargo add anydoc
let markdown = anydoc::to_markdown("report.pdf")?;需要保留嵌入图片的原始字节?停在 toDocument 层即可,详见 API 快速参考。
转换细节与边界
- 文本型 PDF 直转,无需 OCR:内置 pdf-inspector 直接解析 PDF 内的文本流,全程本地完成,不调用任何在线服务
- 扫描版 / 纯图片 PDF 不支持:这类 PDF 需要 OCR,anydoc 会返回
Unsupported——这是设计边界,不是 bug。需要 OCR 时可用 Firecrawl Parse,详见错误处理与限制 - 噪音默认剔除:页眉、页脚、页码、日期/时间占位符统一去掉,给 LLM 干净的输入
- 结构尽量保留:标题层级、列表、表格转成对应的 GFM 语法;跨页断行、连字符会做规整
- 按内容识别格式:从文件字节探测真实格式,扩展名写错也能正常转换
- 速度:中位转换耗时 4.4ms,纯 Rust 实现,无 ML 模型、无外部依赖
常见问题
PDF 转 Markdown 是免费的吗?
是。anydoc 是 MIT 协议的开源库,本页在线转换器同样免费,且转换在本地浏览器完成,没有次数限制,也不需要注册。
我的 PDF 会被上传吗?
不会。在线转换器基于 WebAssembly 在你的浏览器内运行,文件全程不离开你的设备;CLI 和 API 版本也是在本地执行转换。
扫描版 PDF 能转吗?
纯扫描 / 纯图片的 PDF 不能——它需要 OCR 能力,anydoc 明确返回 Unsupported。两条路:先用本地 OCR 工具(如 tesseract)把 PDF 变成文本型,或直接用 Firecrawl Parse(在 anydoc 同一转换链路上叠加了 OCR)。
转出来的 Markdown 表格会乱吗?
表格会转成规整的 GFM 表格。PDF 里复杂的多列布局会被降级为可读文本,信息完整度有基准测试背书,但不保证像素级还原——anydoc 的目标是信息完整,不是视觉复刻。
特大 PDF 能转吗?
正常文档没有问题(中位 4.4ms)。解压、嵌套深度、节点数有固定安全上限,几百 MB 的怪物文件可能触发 ResourceLimit 错误——先拆分再转即可。
相关页面
- 姊妹格式:Word 转 Markdown(.doc / .docx / .docm)
- 从零开始:新手入门:第一个转换
- 五端 API 一张表:API 快速参考
- 报错排查:错误处理与限制
- 安装与各语言绑定:安装下载
- 和 markitdown 差多少:markitdown vs anydoc
- 完整数据:性能基准