PDF с текстовым слоем и сканированный PDF это два разных файла с одинаковым расширением. В первом текст лежит внутри файла: его можно выделить мышкой и найти поиском. Во втором внутри картинка, то есть страница, снятая сканером или телефоном и упакованная в PDF-обёртку.
Для распознавания разница принципиальная. Из первого данные достаются прямо из файла, ровно такими, какими их напечатал поставщик. Второй сначала надо прочитать как изображение, и тогда на результат влияет качество картинки.
Четыре вида PDF, которые приходят в реальном потоке
Откуда взялся файл, обычно видно по тому, как он устроен внутри.
| Вид PDF | Откуда берётся | Что внутри файла | Как обрабатывается |
|---|---|---|---|
| С текстовым слоем | Выгрузка из учётной системы, печать в PDF из Word или Excel | Символы с координатами на странице | Данные читаются из файла напрямую |
| Сканированный | Сканер, МФУ или фотография, сохранённая в PDF | Изображение страницы | Сначала читается картинка, потом извлекаются поля |
| Смешанный | Договор, где подписанную страницу пересканировали и вложили обратно | Часть страниц текст, часть картинка | Постранично: каждая страница своим способом |
| Скан с готовым текстовым слоем | Файл уже прогоняли через распознавание на чужой стороне | Картинка плюс слой распознанного текста | Слой проверяется, а не принимается на веру: чужие ошибки чтения в нём уже зашиты |
Последний вид самый коварный. Файл ведёт себя как текстовый: текст выделяется, поиск работает. Но если распознавание на той стороне ошиблось в артикуле, ошибка поедет дальше уже как достоверное значение.
Как за десять секунд понять, какой PDF у вас на руках
Откройте файл и попробуйте выделить мышкой строку с ценой.
- Текст выделяется и копируется: внутри текстовый слой.
- Выделяется прямоугольная рамка поверх картинки: это скан.
- Поиск по слову, которое видно на экране, ничего не находит: тоже скан.
Есть проверка понадёжнее: скопируйте найденный фрагмент в блокнот. Если вместо цифр и букв вышли кракозябры, текстовый слой в файле есть, но он битый. Такое бывает после плохого распознавания и на нестандартных шрифтах.
Почему разница заметна только на потоке
На одном документе её почти не чувствуешь: и то и другое читается. Разница вылезает на пачке, и вылезает она не в качестве, а в количестве мест, которые приходится перепроверять глазами.
Из выгрузки цифры приходят как есть. Из скана они приходят прочитанными, и спорные места остаются: слипшаяся сумма, ноль вместо буквы О в артикуле, съеденный разделитель разрядов, сноска про спецусловия мелким шрифтом.
Поэтому мы смотрим не на количество документов в потоке, а на его состав: сколько выгрузок и сколько сканов. Что именно портит скан и что из этого чинится, разобрано отдельно: распознавание сканов документов.
Что ещё встречается в потоке PDF
- Склейка. Счёт, спецификация и сопроводительное письмо одним файлом. Их надо разделить, иначе поля перемешаются между документами и в сравнение уедет сумма из соседнего счёта.
- Защита. Пароль на открытие или запрет копирования. Снимается только на стороне отправителя, просить надо сразу.
- PDF из мессенджера. Часто это пересжатая картинка в обёртке: файл подозрительно лёгкий, а буквы поплыли.
- PDF, собранный из фотографий. Формально PDF, по сути снимок страницы со всеми его особенностями.
- Повёрнутая страница. Лист лежит боком или вверх ногами. Разворачивается автоматически, но на смешанной пачке лучше проверить.
Простое правило для поставщиков: просите тот же PDF, который выгрузился у них из учётной системы, а не его распечатку и не пересканированную копию. Каждый круг «напечатали и отсканировали» отнимает у документа текстовый слой.
Что сделать с PDF до загрузки
Немного: основная часть работы делается не у вас, а на стороне отправителя. Три вещи всё-таки стоят усилий.
- Разделить склейку. Один файл это один документ.
- Снять пароль, если он стоит, и запросить файл заново.
- Не перегонять PDF в Word руками. Конвертер разваливает таблицы, строки съезжают, и в данных появляются позиции, которых в документе не было.
Если сканы в вашем потоке появляются не снаружи, а внутри компании, поток стоит выстроить целиком, от точки приёма до выгрузки данных: об этом сканирование документов и распознавание текста.
Как PDF попадает в обработку у нас
IntDoc принимает PDF наравне со сканами, фотографиями с телефона, документами Word и Excel, письмами, прайс-листами, счетами и коммерческими предложениями. Разбирать поток по видам файлов заранее не нужно.
Дальше документ читается построчно, и из него вытягиваются цена и валюта, срок поставки, наличие на складе, номенклатура и позиции, условия оплаты, гарантия и сервис, реквизиты поставщика, скидки и спецусловия.
Предложения приводятся к единому виду, сравниваются между собой, результат уходит в Excel, в CRM и в Битрикс24, а история сравнений остаётся внутри. Из чего вообще складывается обработка документа и чем извлечение полей отличается от чтения текста, написано в статье распознавание документов.