Извлечение данных из PDF: что достаётся сразу, а что требует распознавания
PDF бывает двух разных видов: с текстовым слоем и картинкой внутри. Из первого данные достаются мгновенно и без ошибок, из второго только через распознавание, со всеми его погрешностями. Отличить можно за секунду: если текст выделяется мышью, слой есть. Самая частая ловушка это PDF, где часть страниц с текстом, а часть сканы: из такого файла половина данных достаётся точно, а половина с ошибками.
Короткий ответ: всё зависит от того, что внутри файла. Одинаковые на вид документы устроены по-разному, и от этого зависит, будут ли данные точными.
Два разных PDF
| Признак | PDF с текстовым слоем | PDF со сканом |
|---|---|---|
| Откуда берётся | Печать из программы, выгрузка из учётной системы | Сканер, снимок, факс |
| Выделяется ли текст | Да | Нет |
| Точность извлечения | Сто процентов, это исходные символы | Зависит от качества снимка |
| Скорость | Мгновенно | Секунды на страницу |
| Поиск по документу | Работает | Не работает без распознавания |
Проверка занимает секунду: откройте файл и попробуйте выделить строку мышью. Выделяется значит символы внутри есть, и их не нужно угадывать по картинке.
Смешанный файл: главная ловушка
Частый случай в деловой переписке: договор напечатан из редактора, а страница с подписями отсканирована и подклеена в тот же файл. Формально это один PDF, фактически две разные технологии на разных страницах. Из текстовых страниц данные достанутся точно, из отсканированной через распознавание, и именно на ней обычно находятся самые важные реквизиты: подписи, печать, дата.
Отсюда практическое правило: проверять надо не файл целиком, а каждую страницу. Хороший сервис показывает, какая страница прочитана как текст, а какая распознана, и с какой уверенностью.
Что именно нужно извлекать
Текст целиком нужен редко. Обычно из документа требуется несколько полей:
- номер и дата документа;
- стороны: наименование, БИН, адрес;
- суммы: с налогом, без налога, итог;
- банковские реквизиты: IBAN, банк;
- ИИН физических лиц в кадровых и клиентских документах;
- таблица позиций: наименование, количество, цена, сумма.
Первые пять пунктов извлекаются надёжно и, что важнее, проверяются: контрольный разряд ИИН и БИН и контрольная сумма IBAN считаются арифметически, поэтому ошибка видна сразу и не уезжает дальше в учёт. Посмотреть на своём файле можно на странице распознавания онлайн.
Таблицы
Таблица в PDF с текстовым слоем это не таблица, а текст с координатами. Строки и столбцы восстанавливаются по положению слов на странице. Поэтому объединённые ячейки, переносы внутри ячейки и таблицы без линий разбираются хуже всего. Проверять результат стоит по итогу: если сумма строк не сходится с итоговой строкой документа, разметка собралась неверно.
Когда данные из PDF нельзя брать как есть
- Если в файле сканированные страницы, а поле критично для денег: IBAN, сумма платежа, номер договора.
- Если документ защищён от копирования: текстовый слой может быть повреждён намеренно.
- Если файл собран из нескольких источников и порядок страниц не очевиден.
- Если в документе есть рукописные вставки: они распознаются ненадёжно.
Во всех этих случаях извлечённые данные годятся как черновик, который сверяется с оригиналом. Что скрывается за заявленной точностью распознавания, разобрано в статье что такое OCR для документов, а признаки правки документа в статье признаки отредактированного скана.
Если файлов много
Для потока имеет смысл не извлекать данные из каждого файла отдельно, а собирать комплект: договор, счёт, акт и платёжное поручение по одной сделке. Тогда извлечённые поля можно сверить между собой и увидеть расхождение, которое в отдельном документе не видно. Как это устроено и сколько стоит, описано на странице тарифов.
Частые вопросы
Как понять, есть ли в PDF текстовый слой
Открыть файл и попробовать выделить строку мышью. Если текст выделяется и копируется, слой есть и данные достанутся точно. Если выделяется прямоугольник страницы, внутри картинка.
Почему из одного PDF данные достаются точно, а из другого с ошибками
Потому что это разные по устройству файлы. В первом лежат исходные символы, во втором изображение, которое нужно распознать. Во втором случае точность зависит от качества скана.
Можно ли извлечь таблицу из PDF без ошибок
Из файла с текстовым слоем и простой таблицей обычно да. Объединённые ячейки, отсутствующие линии и переносы внутри ячеек ломают разметку, поэтому итог всегда стоит сверять с документом.
Что делать, если PDF защищён от копирования
Текст из такого файла лучше извлекать распознаванием страницы, как из скана. Защита нередко повреждает текстовый слой, и извлечённые символы оказываются неверными, хотя выглядят как настоящие.
Что с этим делать дальше
Если документы идут потоком, проверку стоит отдать сервису. DocVision Ai читает сканы и PDF, достаёт реквизиты, сверяет документы комплекта между собой и ведёт историю дел. Первые 50 дел в месяц бесплатно, дальше от 1500 тенге за комплект. Отдельный документ можно распознать онлайн без регистрации: файл читается в браузере и на сервер не уходит.