Решение для 54% PDF-документов
Команда Firecrawl представила pdf-inspector — легковесную библиотеку на Rust, предназначенную для локальной обработки PDF-файлов. Главная проблема, которую решает инструмент: большинство PDF (около 54%) являются текстовыми, а не сканированными изображениями, но многие пайплайны всё равно отправляют их через тяжеловесные OCR-сервисы. pdf-inspector позволяет обрабатывать такие документы локально, экономя время и вычислительные ресурсы.
Библиотека поддерживает биндинги для Python, Node.js и Browser WebAssembly, что делает её универсальной для серверных и клиентских приложений. Ключевая особенность — отсутствие внешних зависимостей и ML-моделей: парсер работает на чистом Rust с единственной зависимостью lopdf.
Скорость и точность: результаты бенчмарков
Оценка проводилась на корпусе opendataloader-bench (200 PDF-файлов) на оборудовании Apple M4 Pro. pdf-inspector показал наивысшие результаты по общей точности, порядку чтения и распознаванию таблиц, а также стал самым быстрым решением. Обработка всего корпуса заняла всего 0.470 секунды.
| Движок | Overall | Reading Order (NID) | Tables (TEDS) | Headings (MHS) | Speed (200 docs) |
|---|---|---|---|---|---|
| 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 |
Результаты актуальны на 31 июля 2026 года. Версии: pdf-inspector 0.2.6, LiteParse 2.10.1, OpenDataLoader 2.2.1, PyMuPDF4LLM 0.2.0, MarkItDown 0.1.5.
Умная классификация и извлечение структуры
pdf-inspector не просто вытаскивает текст, но и понимает структуру документа. Алгоритм классификации определяет тип PDF за 10–50 мс, анализируя контентные потоки:
- TextBased — чистый текст (не требует OCR).
- Scanned — сканы изображений.
- ImageBased — документы, состоящие из картинок.
- Mixed — смешанный тип.
Для текстовых PDF инструмент обеспечивает позиционно-зависимое извлечение текста. Он распознает заголовки (H1-H4 на основе соотношения размеров шрифтов), списки, блоки кода (по моноширинным шрифтам) и ссылки. Особое внимание уделено таблицам: используется двухрежимное обнаружение (на основе прямоугольников и эвристик выравнивания), что позволяет корректно обрабатывать финансовые отчеты и многостраничные таблицы.
Поддержка сложных макетов и кодировок
Библиотека справляется с неочевидными задачами, которые часто ломают другие парсеры:
- Многоколоночная верстка: автоматическое определение порядка чтения (включая RTL-текст) и газетных колонок.
- CID шрифты: поддержка декодирования ToUnicode CMap для Type0/Identity-H шрифтов, включая UTF-16BE, UTF-8 и Latin-1.
- Обнаружение ошибок: система автоматически помечает сломанные кодировки шрифтов, чтобы вызывающая сторона могла переключиться на OCR.
Документ загружается в память один раз и разделяется между этапами детекции и извлечения, что исключает избыточные операции ввода-вывода. Это делает pdf-inspector идеальным выбором для обработки отчетов, научных статей, счетов и юридических документов, где важна скорость и сохранение структуры.
Источник: Github ↗
