Способов спрятать текст в PDF примерно семь, и все они законные с точки зрения формата. Подмена через /ActualText и /Alt: в тегированном PDF эти поля задают «настоящий» текст вместо нарисованных букв, и экстрактор возьмёт именно их. Невидимый режим отрисовки (render mode 3): глифы есть, краски у них нет. Белый текст на белом фоне. Кегль меньше одного пункта – формально текст на месте, прочитать невозможно. Вынос за границы страницы: содержимое лежит за пределами видимой области. Выключенный по умолчанию слой (OCG). И текст под непрозрачным изображением.
Практическая опасность выросла вместе с автоматической обработкой документов. Резюме и коммерческие предложения читают ATS-системы, счета и договоры разбирают парсеры, а всё чаще – языковые модели. Скрытый слой видит именно машина, и он становится инструкцией, которую никто не проверял глазами. Отправляя в модель чужой PDF, вы отправляете и его невидимую часть.
Правильный порядок – сначала посмотреть, потом чистить. Сканирование показывает тип находки, страницу, извлечённый текст и уровень достоверности, ничего не меняя в файле. Учтите, что не всякая находка – злой умысел: текстовый слой обычного скана технически тоже «невидимый текст», поэтому такие срабатывания помечаются низкой достоверностью. Когда картина ясна, скрытое содержимое удаляется отдельным инструментом очистки.