Мастерская

Какие PDF не читаются и почему

PDF выглядит одинаково, но внутри бывает пять совершенно разных вещей. От того, какая у вас, зависит, достанете вы данные за минуту или не достанете вовсе. Разбираю по порядку — с проверкой для каждого случая.

Сначала главное, что нужно понять про формат: PDF — это не документ, а инструкция для печати. Внутри лежат команды вида «нарисуй букву в точке с координатами (120, 340)». Никакого «текста документа» там может не быть вовсе. Поэтому вопрос «почему из PDF не копируется текст» имеет пять разных ответов.

ПРИЧИНА ПЕРВАЯ

Это скан, а не текст

Самый частый случай. Документ распечатали, подписали, отсканировали или сфотографировали — и в файле осталась картинка. Буквы на ней видны человеку, но компьютеру это просто набор пикселей.

Текста внутри нет физически. Его нельзя «извлечь», его можно только распознать.

Как проверить за пять секунд: откройте PDF и попробуйте выделить мышкой строку. Если выделяется вся страница целиком, как картинка — это скан. Если выделяются отдельные слова — текстовый слой есть.
ПРИЧИНА ВТОРАЯ

Шрифт без карты символов

Самая коварная. Текстовый слой есть, выделяется, но при копировании получается мусор: «Ãâàíîâ» вместо «Иванов» или пустые квадраты.

Причина техническая. В современных PDF текст хранится не буквами, а номерами глифов: написано не «Иванов», а «глиф №214, глиф №87, глиф №12…». Чтобы вернуть буквы, нужна таблица перевода — карта символов ToUnicode. Хорошие программы её пишут. Некоторые — экономят и не пишут.

Как проверить: скопируйте строку из PDF и вставьте в блокнот. Если буквы заменились на вопросительные знаки или латинскую абракадабру — карты символов нет. Что делать: распознавать заново, как картинку. Другого пути нет.
ПРИЧИНА ТРЕТЬЯ

Запрет на извлечение текста

PDF умеет запрещать копирование: владелец ставит галочку «запретить извлечение текста», и редакторы отказываются его выделять. Защита при этом слабая — файл не зашифрован по-настоящему, и часть программ её игнорирует.

Как проверить: свойства документа (Ctrl+D в Adobe Reader) → вкладка «Защита». Если стоит «Запрещено извлечение» — вот она. Что делать: снять защиту в редакторе, если у вас есть право на документ. Если права нет — вопрос не технический.
ПРИЧИНА ЧЕТВЁРТАЯ

Сжатые таблицы ссылок

Внутри PDF есть оглавление — оно говорит, где что лежит в файле. В новых версиях это оглавление само упаковано в архив и лежит в конце файла. Простые программы его не видят и делают вывод: «файл повреждён».

Файл при этом совершенно целый, и Adobe его открывает без замечаний.

Как проверить: если файл открывается в любой читалке, но автоматика говорит «повреждён» — дело почти наверняка в этом. Что делать: либо программой с поддержкой современных PDF, либо пересохранить файл из читалки («Печать в PDF») — новый файл будет проще.
ПРИЧИНА ПЯТАЯ

Таблица нарисована, а не построена

Формат не знает слова «таблица». Таблица в PDF — это набор линий и отдельно стоящих подписей в координатах. Текст читается, а вот строки и колонки собираются только по взаимному расположению: что выше — то выше, что левее — то левее.

Проблема начинается на сложной вёрстке: позиция в две строки, объединённая ячейка, колонка без заголовка. Координаты есть, а смысла в них нет.

Как проверить: если текст копируется, но вставляется по одной ячейке на строку — это как раз случай. Что делать: собирать таблицу по координатам, а сложные места разбирать руками.

Что из этого следует

Прежде чем искать сервис, определите причину: скан или текст — это первый вопрос, и он отсекает половину вариантов. Скан распознаётся только распознаванием, и обещать тут «мгновенное извлечение» нечестно. Текстовый слой достаётся быстро, но упирается в две другие вещи: есть ли карта символов и насколько сложна вёрстка.

И отдельно: всегда проверяйте итог. Сумма позиций должна сойтись с «Итого» в документе, НДС — с суммой налога. Автоматика ошибается молча, и ошибка в счёте дороже скорости.

ГДЕ ИНСТРУМЕНТ СДАЁТСЯ

Мой разбор PDF читает структуру файла сам, в браузере, и честно говорит, какая из пяти причин у вас: он определяет отсутствие текстового слоя и наличие защиты. Достаёт номер, дату, ИНН, суммы и НДС и собирает таблицу построчно — но скан не распознаёт.

Таблицы со сложной вёрсткой собираются криво: координаты есть, а смысла в них нет. Такие документы я разбираю вручную или распознаванием — и всегда сверяю итог с суммой в документе.

Скан, кривая вёрстка или сотня счетов?
Напишите, что за документы и сколько их. Скажу, реально ли это, сколько будет стоить и когда сдам.
Написать мне