pdf-inspector:先判断 PDF 类型,再决定是否需要 OCR
一分钟看懂
pdf-inspector 是 Firecrawl 开源的高性能 PDF 分类与文本提取库。它先快速判断一份 PDF 是原生文字、扫描图片、纯图片还是混合类型,再提取有坐标和字体信息的文字,并转换成结构化 Markdown。真正需要识别的页面才交给 OCR,避免每份 PDF 都走昂贵而缓慢的识别流程。
核心解析器使用 Rust 编写,同时提供命令行、Python、Node.js 和浏览器 WebAssembly 接口。它适合成为文档处理流水线的入口:先检查文档,再把不同页面路由给普通解析器或 OCR。
你可以用它做什么
为知识库批量清洗 PDF
研究报告、合同、论文和财务资料经常混有双栏正文、表格和扫描页。pdf-inspector 可以提取标题、列表、代码块、链接和表格,生成更适合检索或交给大模型的 Markdown,并保留分页等结构信息。
降低 OCR 成本和延迟
很多 PDF 本身已有文字层,不需要图像识别。该库会抽样内容流并给出分类与置信度,还能按页判断是否需要 OCR。正常文字页走快速本地提取,只有扫描页或编码损坏页进入 OCR,节省算力和外部服务费用。
在浏览器中本地解析
WebAssembly 版本可以在浏览器和 Web Worker 中运行,同一套 Rust 解析逻辑无需把文件上传服务器。对隐私敏感的文档预览、离线工具和前端批处理,这种方式很有价值。
保留布局线索供后续处理
提取结果包含字体、坐标和阅读顺序,可识别多栏排版、从右到左文字以及跨页延续表格。后续系统可以根据这些信息重新分段、建立引用位置或做更精细的版面分析。
主要能力
- 快速区分文字型、扫描型、图片型和混合型 PDF,并返回置信度。
- 具有位置感知的文字提取、自动多栏阅读顺序和字体信息。
- 将标题、列表、表格、粗斜体、代码块和链接转换为 Markdown。
- 同时采用绘图矩形与文字对齐规则识别表格。
- 检测字体编码异常,提示调用方回退到 OCR。
- 仅对必要页面执行本地选择性 OCR,并记录页面处理来源。
- 提供 Rust、CLI、Python、Node.js 和浏览器 WASM 入口。
适合哪些人
它适合构建 RAG 知识库、文档搜索、报告归档和数据抽取系统的开发者,也适合需要在本地快速筛查大量 PDF 的团队。尤其当资料大部分是原生文字、少部分是扫描件时,智能路由能明显简化处理流程。
如果文档主要是复杂手写内容、图片中的图表数据或极端版式,仅依靠它仍不够,需要专业 OCR、视觉模型或人工校对。
怎么开始使用
Python 用户可以安装 pdf-inspector,调用 process_pdf 获得文档类型和 Markdown;需要选择性 OCR 时使用对应 OCR 接口。Node、Rust 和浏览器用户按各自文档接入。建议先用自己业务中具有代表性的几十份 PDF 测试分类、表格和阅读顺序,再决定回退规则。
生产系统最好同时保存原文件、解析版本、页码和处理方式,抽样检查 Markdown 与原文的一致性。对失败文件应进入重试或人工队列,而不是静默丢弃。
使用前需要知道
“解析成功”不等于内容完全正确。特殊字体、加密文件、嵌套表格和视觉化图表都可能造成缺字或顺序错误。官方基准主要衡量指定语料和配置,自己的文档分布可能不同,应以业务测试为准。
OCR 运行时、模型文件和 PDFium 等依赖并非所有默认构建都会自动包含。开启 OCR 会增加安装体积和资源消耗。处理合同、个人资料等敏感文档时,也应明确文件是否离开本机以及日志中是否保留原文。