pdf-inspector:PDF解析神器,日涨1190星
处理 PDF 文本提取,你是不是还在用又慢又贵的 OCR?Firecrawl 团队开源的这个 Rust 库,不用 OCR 就能在 200ms 内完成分类、提取、转 Markdown 一条龙,今天一夜涨了 1190 星。
📌 项目名片
🤔 它解决什么问题
做过后端或 AI 应用的同学一定遇到过这个场景:用户上传一个 PDF,你需要把里面的文字提取出来。传统做法无非两条路——
路线一:无脑上 OCR。 不管 PDF 里有没有文字,直接扔给 OCR 引擎(Tesseract、百度 OCR、Azure OCR 等),慢(2~10 秒/文档)、贵(按页计费)、还有识别误差。
路线二:用 PDF 解析库。 比如 PyMuPDF、pdfplumber,速度还行,但格式保留差——表格变乱码、排版丢失、代码块和正文糊在一起。
Firecrawl 团队在规模化处理网页和文档时发现一个关键数据:大约 54% 的 PDF 本来就是文本型的,根本不需要 OCR。于是他们用 Rust 从头写了一个轻量引擎——先快速判断 PDF 类型,文本型直接本地提取并转 Markdown,只有扫描件才路由到 OCR 服务。
这个决策直接省了一半以上的算力和成本。
✨ 核心亮点
🔍 毫秒级智能分类
10~50 毫秒判断 PDF 类型:文本型(TextBased)、扫描型(Scanned)、图片型(ImageBased)或混合型(Mixed)。还会精确告诉你「第 3、7、12 页需要 OCR」,支持按页路由而非粗暴的全有或全无。
⚡ 快得离谱的提取速度
在 200 页 PDF 的标准基准测试中,pdf-inspector 跑完全程仅 0.47 秒,比 PyMuPDF4LLM(17.1 秒)快 36 倍,比 MarkItDown(16.2 秒)快 34 倍。综合评分 0.875 在所有本地引擎中排名第一。
📝 高质量 Markdown 输出
自动识别并转换:标题层级(H1-H4,按字号比例)、表格(矩形检测+启发式对齐双模式)、代码块(等宽字体检测)、有序/无序列表、粗斜体、超链接、上下标……甚至能处理多栏布局和 RTL 文字。输出直接喂给 LLM 做 RAG,不用二次清洗。
🌐 全平台覆盖
一套 Rust 核心,四种绑定:Rust crate、Python(PyO3)、Node.js(napi-rs)、浏览器 WASM。无论你写后端服务还是前端工具,都能直接调用同一个引擎。
🪶 零外部依赖
纯 Rust 实现,无 ML 模型、无外部服务调用,唯一依赖 lopdf 做 PDF 解析。体积极小,部署零负担。
🚀 快速上手
CLI 一把梭(最快体验)
cargo install pdf-inspector
pdf2md document.pdf # PDF → Markdown
pdf2md document.pdf --json # JSON 输出
detect-pdf document.pdf # 只看分类结果
Python
pip install maturin
maturin develop --release
import pdf_inspector
result = pdf_inspector.process_pdf("document.pdf")
print(result.pdf_type) # "text_based", "scanned", etc.
print(result.markdown) # 干净的 Markdown 文本
Node.js
npm install @firecrawl/pdf-inspector
import { readFileSync } from 'fs';
import { processPdf } from '@firecrawl/pdf-inspector';
const result = processPdf(readFileSync('document.pdf'));
console.log(result.pdfType);
console.log(result.markdown);
👥 适合谁
pdf2md,轻量无侵入边界提醒:pdf-inspector 处理文本型 PDF 表现最佳;纯扫描件/图片型 PDF 仍需走 OCR 流程,它只负责帮你快速识别、按页路由。
💡 小结
pdf-inspector 用一个轻量的设计解决了 PDF 文本提取的大半痛点——快、准、零外部依赖,Smart Routing 的思路尤其适合大规模文档处理流水线。如果你的项目也在跟 PDF 打交道,值得去 GitHub 给它点个 star ⭐,顺便试试 pdf2md 命令,看你的 PDF 能转出多干净的 Markdown。
夜雨聆风