pdf-inspector: Rust-библиотека для PDF

источник ↗ ·

Быстрая Rust-библиотека для классификации PDF и извлечения текста без OCR, с привязками к Python, Node.js и WebAssembly.

privacy

Эта заметка участвует в semantic memory.

AI Summary

🚀 TL;DR pdf-inspector — это высокопроизводительная Rust-библиотека для локальной обработки PDF-документов. Она определяет тип PDF (текстовый/сканированный/смешанный), извлекает текст с координатами и конвертирует его в структурированный Markdown без использования OCR. Оптимизирована для скорости (обработка за <200 мс) и точности извлечения таблиц, заголовков и списков.

📖 Что это такое Инструмент от Firecrawl для интеллектуальной маршрутизации PDF: текстовые документы обрабатываются локально, сканированные отправляются на OCR. Поддерживает Python, Node.js, Rust и браузерный WebAssembly. Работает с CID-шрифтами, многостолбцовыми макетами и финансовыми таблицами.

🔑 Ключевые факты • Скорость: ~10-50 мс на классификацию, ~150 мс на извлечение • Точность: 0.875 overall score на бенчмарке opendataloader-bench (200 PDF) • Поддержка: TextBased, Scanned, ImageBased, Mixed типы • Таблицы: детекция по прямоугольникам + эвристика по выравниванию • Шрифты: ToUnicode CMap, UTF-16BE/UTF-8/Latin-1 • Стратегии сканирования: EarlyExit, Full, Sample(n), Pages(vec) • Бенчмарк (31 июля 2026): pdf-inspector 0.2.6, LiteParse 2.10.1, OpenDataLoader 2.2.1

⚙️ Как это работает

  1. Загрузка документа один раз через load_document_from_path/mem
  2. Классификация: парсинг xref-таблицы, поиск Tj/TJ и Do операторов
  3. Извлечение: fonts → content_stream → xobjects → links → layout
  4. Таблицы: detect_rects (union-find) + detect_heuristic (выравнивание)
  5. Markdown: анализ шрифтов → препроцессинг → конвертация → постобработка

💡 Вывод и значение pdf-inspector решает задачу умной маршрутизации PDF в пайплайнах: ~54% текстовых документов обрабатываются локально без OCR, что снижает стоимость и задержку. Лучший выбор для отчётов, научных статей, финансовых документов и юридических PDF, где важны скорость, порядок чтения и структура таблиц.

📌 Важные детали • CLI: pdf2md document.pdf [--json|--items-json|--raw|--compact|--pages|--select-pages] • Rust: cargo add pdf-inspector • Python: pip install maturin && maturin develop --release • Node.js: npm install @firecrawl/pdf-inspector • WASM: npm install @firecrawl/pdf-inspector-wasm • GitHub: https://github.com/firecrawl/pdf-inspector • Документация: docs/python.md, napi/README.md, wasm/README.md, docs/rust-api.md

Мои мысли

graph

Карта связей