做 PDF 文档处理的人,八成踩过这个坑:不管上传的是啥,先扔进 OCR 跑一遍。
费时间、吃算力不说,原本干干净净的文字版 PDF,经过 OCR 之后反而可能多出错字、乱换行,表格也被拆得稀碎。挺冤的。
Firecrawl 团队最近开源了一个项目,叫 pdf-inspector。它干的事不复杂,但很实用:先判断 PDF 到底是文字版,还是纯扫描图片。

碰到文字版,就不绕 OCR 这条远路了,直接把内容提出来转成 Markdown。项目给出的最快速度是 200 毫秒,还会处理表格、多栏排版和标题层级,出来的结构不是一大坨纯文本。
东哥看到这种工具,第一反应不是“提取率有多玄学”,而是能不能塞进现有流水线。pdf-inspector 提供了 Python、Node.js、Rust 和浏览器端四套接口,这点挺舒服。后端服务里能接,脚本里能跑,浏览器端还能通过 WebAssembly 本地处理,不一定非得先把文件传服务器。

这个对带敏感文档的场景也有点意思,比如合同预览、内部知识库导入,至少前置识别这一步可以留在本地。
我这个老开发的毛病又犯了:文档链路最好别一上来就堆模型。先判断文件类型,再决定走文字提取、OCR 还是别的 fallback,日志也好查,出错时不至于连问题卡在哪一层都不知道。
做 RAG、知识库、PDF 转 Markdown,或者正在搭文档解析服务的,可以把它放在入口先筛一遍。扫描件继续交给 OCR,文字版直接提取,少折腾一道就是一道。
GitHub地址:firecrawl/pdf-inspector
夜雨聆风