Firecrawl открыла pdf-inspector: PDF в Markdown за миллисекунды, без OCR
Firecrawl — стартап из Y Combinator, который делает инструменты для вытаскивания данных из сайтов, — открыл исходники pdf-inspector: библиотеки на Rust, которая за миллисекунды определяет, текстовый перед тобой PDF или скан, и превращает текстовые документы в чистый Markdown вообще без OCR. По оценке команды, около 54% PDF в реальных задачах — текстовые, и гонять их через медленный и дорогой OCR просто незачем.
Если ты хоть раз скармливал нейросети PDF — договор, отчёт, книгу — знаешь это чувство: файл вроде открывается, а текст из него не копируется или копируется кашей. Классические парсеры либо давятся на таблицах, либо прогоняют каждую страницу через OCR, тратя секунды и деньги. pdf-inspector бьёт ровно в эту боль: сначала быстро смотрит, что за файл, и подключает OCR только если это реально скан.
Сначала классификация, потом извлечение
Библиотека за один проход относит PDF к одному из четырёх типов — TextBased, Scanned, ImageBased или Mixed — и выдаёт уверенность от 0 до 1 плюс маршрут по страницам: какие читать как текст, какие отправлять в OCR. Классификация занимает 10–50 миллисекунд. Дальше для текстовых страниц идёт извлечение с координатами, шрифтами и порядком чтения, а на выходе — Markdown с заголовками, списками, таблицами и ссылками.
Цифры, которые впечатляют
На бенчмарке opendataloader-bench из 200 PDF pdf-inspector разобрал весь корпус за 0,47 секунды. Для сравнения: pymupdf4llm — 17 секунд, markitdown — 16 секунд. При этом по качеству он выше всех: общий балл 0,875 против 0,735 у pymupdf4llm и 0,589 у markitdown. Таблицы он распознаёт заметно лучше — 0,814 против 0,401 и 0,273.
Что ещё умеет
Многоколоночные газетные макеты, текст справа налево, CID-шрифты, определение сломанных кодировок. Отдельно — выборочный OCR: если в PDF затесались отдельные отсканированные страницы, можно прогнать через OCR только их, локально, через PP-OCRv6 Small, а не весь документ целиком.
Где подвох
Честно: для настоящих сканов и фотографий документов OCR всё равно нужен, и тут pdf-inspector не волшебство — он просто не тратит OCR на то, что в нём не нуждается. Сложные макеты, где формулы и вёрстка перемешаны с текстом, тоже могут поехать. И это библиотека, а не готовый сервис: чтобы ей пользоваться, придётся написать немного кода.

Есть биндинги для Python, Node.js и браузерный WASM — тот же Rust-парсер работает прямо в браузере без сервера. Репозиторий на GitHub уже набрал почти 17 тысяч звёзд. Если часто таскаешь PDF в нейросети — стоит глянуть.