Что такое слои в PDF
Слои в PDF устроены не так, как в графическом редакторе. Содержимое страницы помечается принадлежностью к группе, а в каталоге документа хранится конфигурация: какие группы включены при открытии. Просмотрщик читает её и рисует только видимые. Никакой отдельной «стопки холстов» в файле нет — есть обычная страница и набор переключателей поверх неё.
Коротко о цифрах
- Термин стандарта
- группа необязательного содержимого, конфигурация лежит в каталоге документа
- Видимость
- определяется конфигурацией по умолчанию, а не тем, что видел отправитель
- Скрытая группа
- остаётся в файле целиком: это переключатель, а не удаление
- Растеризация
- оставляет только видимое, скрытые группы в результат не переносятся
- Менеджер слоёв
- в наших инструментах отсутствует
Как это устроено внутри
Каждая группа — объект с именем, тем самым, что видно в панели слоёв. Куски содержимого страницы обёрнуты маркерами принадлежности: начало помеченного участка, конец помеченного участка. Изображения и формы могут ссылаться на группу напрямую, минуя маркеры.
Главное — конфигурация по умолчанию в каталоге документа. Именно она решает, что вы увидите при открытии файла, и именно из-за неё чертёж у заказчика выглядит иначе, чем у проектировщика: тот сохранил файл со своим набором включённых групп.
Слой — не способ что-то спрятать
Выключенная группа остаётся в файле байт в байт. Её не видно на экране и не будет на печати, но содержимое никуда не делось: его достаточно включить обратно, а извлечению текста и вовсе всё равно, что помечено скрытым. По этой же логике не работает и обрезка полей: рамка прячет, но не удаляет.
Если что-то должно исчезнуть по-настоящему, помогает только перерисовка страницы: растеризация оставляет ровно то, что было видно, и скрытые группы в новый файл не попадают. Сведение аннотаций решает похожую задачу для комментариев и штампов, но слоёв не касается.
Что с ними делают наши инструменты
- Менеджера слоёв у нас нет: включать и выключать группы надо в просмотрщике, который это умеет.
- Сжатие с растеризацией и экспорт в изображения фиксируют видимость по конфигурации по умолчанию — то, что было выключено, в результат не попадёт.
- Серверные инструменты на qpdf — защита, снятие пароля, ремонт, оптимизация — переписывают структуру целиком, вместе с группами.
- Объединение и другие сборки нового документа переносят страницы, но конфигурация видимости живёт в каталоге исходного файла, поэтому переключателей в результате, скорее всего, не останется.
Частые вопросы
Как убрать из чертежа лишний слой?
Нужен редактор со списком групп: он позволяет удалить группу вместе с содержимым. Наши инструменты этого не умеют, а растеризация лишь закрепит текущую видимость, оставив включённое и выбросив выключенное.
Почему у меня и у коллеги чертёж выглядит по-разному?
Разные наборы включённых групп. Конфигурация по умолчанию сохраняется в файле, поэтому коллега видит то, что было включено в момент сохранения, а не то, что вы включили у себя после открытия.
Сохранятся ли слои после объединения файлов?
Само содержимое перенесётся, а вот переключатели видимости, скорее всего, нет: конфигурация хранится в каталоге исходного документа, а новый файл собирается заново из страниц.
Можно ли считать скрытый слой безопасным способом убрать данные?
Нет, и это частая ошибка. Скрытое содержимое остаётся в файле, его видно после включения группы, а иногда оно попадает даже в извлечённый текст. Для настоящего удаления нужна перерисовка страницы.