Что такое слои
PDF может нести несколько наложенных чертежей в одном файле и позволять читателю переключаться между ними. Механизм называется необязательным содержимым, а каждая переключаемая часть — группой необязательного содержимого (OCG). Программы САПР и иллюстрации пользуются этим постоянно: размеры, штриховки, вспомогательные линии, облака изменений, языковые варианты, только печатные метки.
У большинства PDF их нет вовсе. Это нормально, и инструмент говорит об этом прямо, а не показывает ошибку.
Переключение действительно перерисовывает
Каждый переключатель в дереве меняет видимость в конфигурации необязательного содержимого pdf.js и заново рисует страницу, поэтому вы видите именно то, что увидел бы читатель с этими слоями, а не имитацию.
Взаимоисключающие группы соблюдаются: /RBGroups объявляет наборы, в которых видимым может быть не более одного слоя, и включение одного участника выключает остальные — ровно так, как поступила бы программа просмотра.
Что добавляет граф объектов
pdf.js сообщает имена и видимость. Всё остальное приходится читать прямо из /OCProperties, и именно это чаще всего удивляет:
/D /BaseState— значение/OFFозначает, что всё начинается скрытым, кроме групп из/ON./D /Locked— слои, переключать которые программа просмотра не даст./D /AS— словари применения. Это механизм, из-за которого слой гаснет сам при печати, экспорте или превышении порога масштаба./Usageкаждой группы —/Print /PrintState /OFF— настоящая ловушка: слой выглядит правильно на экране и попросту отсутствует на бумаге./Intent— группа с назначением/Designвместо/Viewполностью игнорируется обычными программами просмотра.- Какие страницы ссылаются на каждую группу — определяется обходом
/Resources /Properties, форм-XObject с/OCи аннотаций с/OC. Группа, на которую ничто не ссылается, объявлена, но не наносит ни капли краски.
Сведение
Можно выгрузить копию с встроенной текущей видимостью. Поток содержимого каждой страницы обходится, участки /OC … BDC … EMC скрытых групп отбрасываются — с подсчётом вложенного размеченного содержимого, чтобы попасть в нужный EMC, — вместе с ними уходят скрытые форм-XObject и аннотации, а /OCProperties удаляется.
Затем утверждение проверяется рендерингом: оригинал рисуется с выбранными настройками, полученный файл — как есть, и сообщается наибольшее постраничное расхождение пикселей. Если оба совпадают с видом файла по умолчанию, инструмент так и говорит, а не намекает, что что-то изменил.
Конфиденциальность
Файл читается, переключается и записывается целиком в вашем браузере. Ничего не загружается на сервер.
Tiny Online Tools







