给大模型喂 PDF,很多人的流程是:上传、OCR、抽文字,再丢进 RAG。
但这里有个挺浪费的地方——大约 54% 的 PDF 本身就是文字版,内容流、字体、坐标都在,压根不需要 OCR。结果还是排队调用识别服务,慢不说,还多一笔费用。
Firecrawl 团队开源的 pdf-inspector,就是专门卡在这一步。

它会先判断 PDF 属于文字版、扫描版、图片版还是混合版,分类通常只要 10~50 毫秒。碰到文字版,直接本地提取,转成 Markdown,整个处理可控制在 200 毫秒内,不走 OCR,也不用外部服务。
表格、多栏排版、标题层级、列表、代码块、粗体链接这些,它也会顺手处理。尤其是论文、财报、合同那种两栏 PDF,阅读顺序搞错一次,后面切 chunk、做召回全跟着乱,这地方比“能不能提取文字”麻烦多了。

好家伙,接口也给得挺全:Python、Node.js、Rust,还有浏览器 WebAssembly。前端直接塞一个 PDF 就能跑,不用为了这点功能再搭个后端服务。
东哥看到这类工具,第一反应不是 Markdown 漂不漂亮,而是遇到混合页面、损坏字体怎么办。它会按页标记哪些内容需要 OCR,正好可以做一层路由:能直接读的本地处理,真扫出来的页面再扔给 OCR。

做知识库、文档解析、上传预处理的朋友,可以把它放在入口先筛一遍。别管后面接的是 MinerU、Docling 还是视觉模型,先把不该 OCR 的 PDF 拦下来,省的都是实打实的延迟和调用费。
GitHub:firecrawl/pdf-inspector
夜雨聆风