pdf-inspector Skill:智能路由 PDF 分类提取,无需 OCR 的 Rust 利器

PDF 处理是 RAG 管道和 AI 文档解析的常见瓶颈——大部分开源方案要么慢(PyMuPDF4LLM 单次 17s),要么把扫描版 PDF 也通通送 OCR,既贵又慢。pdf-inspector 解决了这个问题:它先用 Rust 在 ~10-50ms 内判断 PDF 是文本型还是扫描型,对文本型直接本地提取并转 Markdown(200 页 corpus 仅需 0.47s),扫描版才路由到 OCR 服务。这是一个专注「智能路由」的 PDF 处理库,今日新增 1,583 stars,已进入 GitHub Trending 前列。

功能与原则

pdf-inspector 是一个 Rust 编写的 PDF 检查、分类和文本提取库,核心设计原则是「先分类再路由,避免不必要的 OCR」。整个库无 ML 模型、无外部服务依赖,单一依赖 lopdf 做 PDF 解析。

核心功能:
智能分类:~10-50ms 判断 PDF 类型(TextBased / Scanned / ImageBased / Mixed),返回置信度分数和逐页 OCR 路由建议
文本提取:带位置信息的文本提取(字体信息、X/Y 坐标),自动识别阅读顺序(含多栏和 RTL)
Markdown 转换:标题(H1-H4)、粗体/斜体、列表、代码块、表格、URL 链接、页码过滤、断行续接
表格检测:双模式——PDF 绘制指令矩形检测 + 文本对齐启发式检测;支持财务报表、跨页表格
多语言/编码:支持 CID font、ToUnicode CMap、UTF-16BE、UTF-8、Latin-1 编码

认可度

  • GitHub Star:截至 2026-08-06 约 11,200 ★(今日新增 1,583 ★,已进入 GitHub Trending)
  • Fork:743
  • 语言:Rust 96% + Python 1.9% + HTML 1.8%
  • 维护:12 位贡献者,主力贡献者 @abimaelmartell,Firecrawl 官方支持
  • 最新版本:0.2.6(2026-08-01),最后提交 Aug 6 2026(1 小时前)

Benchmark(opendataloader-bench 200 PDFs,Apple M4 Pro):

引擎 Overall 阅读顺序 表格 标题 速度
pdf-inspector 0.875 0.915 0.814 0.788 0.470s
liteparse 0.873 0.913 0.693 0.811 0.750s
opendataloader 0.831 0.902 0.489 0.739 2.569s
pymupdf4llm 0.735 0.886 0.401 0.424 17.117s
markitdown 0.589 0.844 0.273 0.000 16.165s

链接

GitHub:https://github.com/firecrawl/pdf-inspector

原作者

Firecrawl(@firecrawl)——专注网页爬取和文档处理的基础设施公司,曾推出同名热门爬虫库 firecrawl-py,累计 star 超过 30k+。pdf-inspector 是其文档处理工具链的最新成员。

介绍

传统的 PDF 处理方案有两类问题:一是把所有 PDF 都送 OCR(贵且慢),二是文本提取后丢失结构信息(表格乱了、标题没了)。pdf-inspector 从根本上重新思考了这个流程。

它将 PDF 处理分为两个阶段:检测提取。检测阶段通过解析 PDF xref 表和内容流,在 10-50ms 内判断页面是否包含文本或图像,无需完整加载文档。这对于 300+ 页的大 PDF 也能快速出结果。检测结果包含 pages_needing_ocr 字段,精确列出哪些页需要 OCR,支持按页路由而非全量 OCR。

提取阶段对文本型 PDF 直接提取内容,重建阅读顺序(包括多栏报纸式布局),识别标题层级(H1-H4 通过字体大小比例聚类)、表格结构、代码块(等宽字体检测)、超链接等。最终输出干净的 Markdown,可直接喂给 LLM 或 RAG 管道。

benchmark 结果显示,在 200 页 PDF corpus 上,pdf-inspector 综合得分 0.875,处理速度 0.47s,是第二名 liteparse 的 1.6 倍,是传统方案 pymupdf4llm 的 36 倍以上。

特点

  • Rust 原生实现:纯 Rust,无外部服务依赖,单二进制可分发,性能极高
  • 智能 OCR 路由:仅对扫描版 PDF 触发 OCR,文本型本地处理,节省 80%+ 成本和延迟
  • 精准表格检测:矩形检测(PDF 绘制指令)+ 启发式对齐双模式,支持跨页财务报表
  • 多语言支持:CJK(中日韩)、RTL(阿拉伯/希伯来)、Latin-1 全覆盖,CMap 完整解码
  • 多平台绑定:Python(PyO3)、Node.js/Bun(napi-rs)、浏览器 WebAssembly,API 统一
  • 极速 benchmark:200 页 corpus 0.47s,综合质量分 0.875,排名第一
  • 无 ML 模型:纯规则+统计,无模型依赖,部署简单,结果可复现

使用方法

Python 安装

pip install maturin && maturin develop --release

Python 基本调用

import pdf_inspector

result = pdf_inspector.process_pdf("document.pdf")
print(result.pdf_type)   # "text_based", "scanned", "image_based", "mixed"
print(result.markdown)   # Markdown string or None

Node.js 安装

npm install @firecrawl/pdf-inspector

Node.js 基本调用

import { readFileSync } from 'fs';
import { processPdf } from '@firecrawl/pdf-inspector';

const result = processPdf(readFileSync('document.pdf'));
console.log(result.pdfType);  // "TextBased", "Scanned", "ImageBased", "Mixed"
console.log(result.markdown); // Markdown string or null

CLI(PDF 转 Markdown)

cargo install pdf-inspector
pdf2md document.pdf           # 输出 Markdown
pdf2md document.pdf --json    # JSON 输出
detect-pdf document.pdf       # 仅分类,不提取

智能路由示例(生产管道):

pdf_type, confidence = classify_pdf("document.pdf")
if pdf_type == "text_based" and confidence > 0.8:
    result = extract_markdown("document.pdf")  # 本地快速处理
else:
    send_to_ocr_service("document.pdf")         # 仅扫描版走 OCR

使用场景与人群

适用场景
– RAG / LLM 文档管道(研究报告、财务报表、合同)
– 规模化 PDF 处理平台(日处理量 1000+ 份)
– 文档解析 AI Agent(需要提取结构化文本)
– 知识库建设(PDF → Markdown → 向量数据库)

目标用户
– AI 应用开发者(需要可靠 PDF 解析)
– 数据工程师(RAG 数据预处理管道)
– 研究人员(批量处理论文/报告)
– 企业文档处理平台(发票、合同、表单提取)

输入与输出案例

案例 1:文本型 PDF(财务报告)

输入:一份 50 页的文本型 PDF 财务报告(含多栏布局、表格、图表)

输出:

## 第一季度财务摘要

| 指标 | 金额(万元) | 同比增速 |
|------|-------------|---------|
| 营业收入 | 12,450 | +23.5% |
| 净利润 | 3,820 | +18.2% |

Figure 1: 2026年Q1收入趋势图 ...

处理时间:约 150ms,无 OCR 调用。


案例 2:扫描版 PDF(老旧合同)

输入:一份扫描版 PDF(300 页,每页独立图像)

输出:

{
  "pdf_type": "scanned",
  "confidence": 0.94,
  "pages_needing_ocr": [1, 2, 3, ...300],
  "markdown": null
}

系统据此将全量 300 页路由到 OCR 服务(而非尝试低效的文本提取)。


GitHub: https://github.com/firecrawl/pdf-inspector

评论区

0 条评论

登录后可评论。

Skill超级捕获手 16 阅读