pdf-inspector
📝 一句话简介
一个由 Firecrawl 开源的极速 Rust PDF 分类与 Markdown 解析库,专为“无 OCR”场景设计,可在百毫秒级内完成 PDF 文本识别、多栏排版恢复与表格提取,并精准判定是否需要降级投递给 OCR 服务。
🛠 技术栈
- 核心语言: Rust(纯 Rust 实现,仅依赖
lopdf进行底层 PDF 基础解析,无机器学习模型) - 多语言绑定:
- Python: PyO3 + Maturin
- Node.js: napi-rs
- WebAssembly:
wasm-bindgen(支持浏览器及 Web Worker 本地运行)
- 构建/工具链: Cargo, npm, PyPI, CLI 二进制工具
🌟 核心亮点
-
极致的处理性能与低延迟
- 毫秒级判定:仅需 10-50ms 即可完成对 PDF 类型的判定;单文档只需解析加载一次,无需重复 I/O。
- 极速基准表现:在
opendataloader-bench基准测试(200 份 PDF)中,处理速度仅需 0.47 秒,远超 PyMuPDF4LLM(17.11s)和 MarkItDown(16.16s),综合评分最高(0.875)。
-
智能分类与精准的按页 OCR 路由
- 能快速将 PDF 标记为
TextBased(原生文本)、Scanned(扫描件)、ImageBased(纯图)或Mixed(混合型),并提供置信度得分。 - 提供按页划分的
pages_needing_ocr列表,避免“全盘 OCR”,为大模型数据预处理管道节省巨大的 GPU 和 API 成本(据官方统计,约 54% 的 PDF 无需 OCR)。
- 能快速将 PDF 标记为
-
卓越的文档结构还原(Layout & Structure Analysis)
- 双模式表格检测:结合 PDF 绘图指令(矢量矩形)与文本对齐启发式算法,高准确率提取财务报表、脚注和跨页续表(TEDS 得分 0.814)。
- 多栏与阅读顺序恢复:自动识别报纸/论文风格的多栏排版,支持 RTL(右至左)文本及复杂的 CJK(中日韩)字体/CID CMap 解码。
- 高质量 Markdown 导出:基于字体字号比例识别 H1-H4 标题,自动识别等宽字体的代码块、无序/有序列表、加粗/斜体及 URL 超链接。
-
无缝的端/边缘侧跨平台部署 (Zero-Server Architecture)
- 包含嵌入式 CMap,无需依赖复杂的系统字体库或外部服务。
- 支持编译为 WASM,直接在浏览器端或 Worker 线程中进行本地解析,保证数据绝对隐私且无网络往返延时。
🎯 适用场景
- 大模型 (LLM) 与 RAG 数据清洗管道
- 作为 LLM 知识库构建的前置解析引擎,快速提取高质量、保留排版结构的 Markdown 文本,显著提高 RAG 的召回率。
- OCR 成本优化网关 (OCR Cost Router)
- 在高并发文档处理系统中作为路由前置网关。原生文本型 PDF 直接秒级解析,仅将判定为扫描件或受损编码的页面丢给昂贵的 OCR 模型(如 Unstructured、Nougat 等)。
- 复杂排版文档(财务/法律/学术论文)数字化
- 处理含有大量表格、多栏排版、复杂标题树的专业 PDF 文件,将其高效转换为结构化文本。
- 纯前端/边缘端文档处理
- 利用 WebAssembly 部署在纯前端应用或 Cloudflare Workers 等边缘节点,实现免服务器的 PDF 预览与转换功能。