Какие PDF не читаются и почему
Сначала главное, что нужно понять про формат: PDF — это не документ, а инструкция для печати. Внутри лежат команды вида «нарисуй букву в точке с координатами (120, 340)». Никакого «текста документа» там может не быть вовсе. Поэтому вопрос «почему из PDF не копируется текст» имеет пять разных ответов.
Это скан, а не текст
Самый частый случай. Документ распечатали, подписали, отсканировали или сфотографировали — и в файле осталась картинка. Буквы на ней видны человеку, но компьютеру это просто набор пикселей.
Текста внутри нет физически. Его нельзя «извлечь», его можно только распознать.
Шрифт без карты символов
Самая коварная. Текстовый слой есть, выделяется, но при копировании получается мусор: «Ãâàíîâ» вместо «Иванов» или пустые квадраты.
Причина техническая. В современных PDF текст хранится не буквами, а номерами
глифов: написано не «Иванов», а «глиф №214, глиф №87, глиф №12…». Чтобы вернуть
буквы, нужна таблица перевода — карта символов ToUnicode. Хорошие
программы её пишут. Некоторые — экономят и не пишут.
Запрет на извлечение текста
PDF умеет запрещать копирование: владелец ставит галочку «запретить извлечение текста», и редакторы отказываются его выделять. Защита при этом слабая — файл не зашифрован по-настоящему, и часть программ её игнорирует.
Ctrl+D
в Adobe Reader) → вкладка «Защита». Если стоит «Запрещено извлечение» — вот она.
Что делать: снять защиту в редакторе, если у вас есть право на документ.
Если права нет — вопрос не технический.Сжатые таблицы ссылок
Внутри PDF есть оглавление — оно говорит, где что лежит в файле. В новых версиях это оглавление само упаковано в архив и лежит в конце файла. Простые программы его не видят и делают вывод: «файл повреждён».
Файл при этом совершенно целый, и Adobe его открывает без замечаний.
Таблица нарисована, а не построена
Формат не знает слова «таблица». Таблица в PDF — это набор линий и отдельно стоящих подписей в координатах. Текст читается, а вот строки и колонки собираются только по взаимному расположению: что выше — то выше, что левее — то левее.
Проблема начинается на сложной вёрстке: позиция в две строки, объединённая ячейка, колонка без заголовка. Координаты есть, а смысла в них нет.
Что из этого следует
Прежде чем искать сервис, определите причину: скан или текст — это первый вопрос, и он отсекает половину вариантов. Скан распознаётся только распознаванием, и обещать тут «мгновенное извлечение» нечестно. Текстовый слой достаётся быстро, но упирается в две другие вещи: есть ли карта символов и насколько сложна вёрстка.
И отдельно: всегда проверяйте итог. Сумма позиций должна сойтись с «Итого» в документе, НДС — с суммой налога. Автоматика ошибается молча, и ошибка в счёте дороже скорости.
Мой разбор PDF читает структуру файла сам, в браузере, и честно говорит, какая из пяти причин у вас: он определяет отсутствие текстового слоя и наличие защиты. Достаёт номер, дату, ИНН, суммы и НДС и собирает таблицу построчно — но скан не распознаёт.
Таблицы со сложной вёрсткой собираются криво: координаты есть, а смысла в них нет. Такие документы я разбираю вручную или распознаванием — и всегда сверяю итог с суммой в документе.