← 所有精選

★ GitHub Trending 精選

每日一個爆紅開源專案

週榜 #12026-08-10

firecrawl/pdf-inspector

Fast Rust library for PDF inspection, classification, and text extraction. Intelligently detects scanned vs text-based PDFs to enable smart routing decisions.

★ 13.9k stars · ▲ +8,641 本週 · 🔶 Rust · 📜 MIT · 官網在 GitHub 開啟 ↗
markdownnodejsocr-routingpdfpdf-classificationpdf-extractionpdf-parserpythonrusttext-extraction

這是什麼

pdf-inspector 是 Firecrawl 做的 Rust PDF 分類與文字抽取函式庫,目標是快速判斷 PDF 是 text-based、scanned、image-based 還是 mixed,並在不使用 OCR 的前提下,把可讀文字抽出來轉成乾淨 Markdown。它不是一個大型模型解析器,而是偏底層、可嵌入資料管線的 PDF inspection 工具:讀 PDF content streams、字型資訊、座標、連結、表格線與版面結構,輸出文字、Markdown、位置資訊或偵測結果。README 特別強調它有 Python、Node.js、Browser WebAssembly、Rust 與 CLI 入口,因此可放在後端 ETL、瀏覽器本地處理,或命令列批次轉檔流程中。

為什麼上榜

這個專案週榜有 8,641 顆週星、累積約 13,859 stars,爆紅原因很直接:PDF 仍是資料管線最麻煩的格式之一,而「全部丟 OCR」昂貴又慢。pdf-inspector 的賣點是先做 smart classification,用約 10–50ms 掃描 content streams 判斷哪些頁面需要 OCR,再讓 text-based PDF 走本地抽取。README 的 benchmark 顯示,在 200 份 opendataloader-bench PDF 上,pdf-inspector overall 0.875、reading order 0.915、tables 0.814,完整跑完 200 docs 為 0.470s;這些數字讓它看起來不是單純包裝器,而是針對閱讀順序、表格與 Markdown 結構做了不少工程細節。

適合誰,可以拿來做什麼

它適合需要大量處理 PDF 的開發者:例如爬蟲、RAG ingestion、企業文件歸檔、研究論文解析、發票或財務報表抽取、法律文件轉 Markdown。最典型用法是 OCR routing:PDF 進來先用 pdf-inspector 判斷,如果是 text-based 且信心高,就本地抽文字與 Markdown;如果是掃描頁或混合型,再把特定頁面送去 OCR。這對成本與延遲都很關鍵,因為 README 明確說它是為了讓文字型 PDF 在本地快速處理、避免不必要 OCR。若需求是圖片掃描件的文字辨識,它本身不做 OCR;它更像是決策與結構化抽取層,幫你把該 OCR 與不該 OCR 的文件分流。

上手

README 提供多種語言入口。Python 範例偏向從 source checkout 用 maturin 開發安裝;Node.js、WASM、Rust 與 CLI 則各有套件安裝方式。最短命令列流程如下:

# CLI
cargo install pdf-inspector
pdf2md document.pdf
pdf2md document.pdf --json
pdf2md document.pdf --raw

detect-pdf document.pdf --analyze --json

Node.js 可用:

npm install @firecrawl/pdf-inspector

Rust 可用:

cargo add pdf-inspector

Python README 範例則是:

pip install maturin
maturin develop --release

README 重點摘要