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 二进制工具

🌟 核心亮点

  1. 极致的处理性能与低延迟

    • 毫秒级判定:仅需 10-50ms 即可完成对 PDF 类型的判定;单文档只需解析加载一次,无需重复 I/O。
    • 极速基准表现:在 opendataloader-bench 基准测试(200 份 PDF)中,处理速度仅需 0.47 秒,远超 PyMuPDF4LLM(17.11s)和 MarkItDown(16.16s),综合评分最高(0.875)。
  2. 智能分类与精准的按页 OCR 路由

    • 能快速将 PDF 标记为 TextBased(原生文本)、Scanned(扫描件)、ImageBased(纯图)或 Mixed(混合型),并提供置信度得分。
    • 提供按页划分的 pages_needing_ocr 列表,避免“全盘 OCR”,为大模型数据预处理管道节省巨大的 GPU 和 API 成本(据官方统计,约 54% 的 PDF 无需 OCR)。
  3. 卓越的文档结构还原(Layout & Structure Analysis)

    • 双模式表格检测:结合 PDF 绘图指令(矢量矩形)与文本对齐启发式算法,高准确率提取财务报表、脚注和跨页续表(TEDS 得分 0.814)。
    • 多栏与阅读顺序恢复:自动识别报纸/论文风格的多栏排版,支持 RTL(右至左)文本及复杂的 CJK(中日韩)字体/CID CMap 解码。
    • 高质量 Markdown 导出:基于字体字号比例识别 H1-H4 标题,自动识别等宽字体的代码块、无序/有序列表、加粗/斜体及 URL 超链接。
  4. 无缝的端/边缘侧跨平台部署 (Zero-Server Architecture)

    • 包含嵌入式 CMap,无需依赖复杂的系统字体库或外部服务。
    • 支持编译为 WASM,直接在浏览器端或 Worker 线程中进行本地解析,保证数据绝对隐私且无网络往返延时。

🎯 适用场景

  1. 大模型 (LLM) 与 RAG 数据清洗管道
    • 作为 LLM 知识库构建的前置解析引擎,快速提取高质量、保留排版结构的 Markdown 文本,显著提高 RAG 的召回率。
  2. OCR 成本优化网关 (OCR Cost Router)
    • 在高并发文档处理系统中作为路由前置网关。原生文本型 PDF 直接秒级解析,仅将判定为扫描件或受损编码的页面丢给昂贵的 OCR 模型(如 Unstructured、Nougat 等)。
  3. 复杂排版文档(财务/法律/学术论文)数字化
    • 处理含有大量表格、多栏排版、复杂标题树的专业 PDF 文件,将其高效转换为结构化文本。
  4. 纯前端/边缘端文档处理
    • 利用 WebAssembly 部署在纯前端应用或 Cloudflare Workers 等边缘节点,实现免服务器的 PDF 预览与转换功能。