iText7 — Установить цвет слоя pdflayer на черный

#colors #layer #itext7

#Цвет #слой #itext7

Вопрос:

Я работаю в компании, в которой есть инженерный отдел. Меня, как одного из чертежников, спрашивают, можно ли отредактировать файл чертежа PDF, чтобы только облака редакций имели красный цвет. Все остальные элементы в PDF должны быть черными.

Экспортированный PDF-файл содержит слои. Облака ревизий имеют свой собственный слой.

Возможно ли зациклить слои и сделать их черными?

Я уже проверил API, но не могу найти здесь прямого ответа. https://api.itextpdf.com/iText7/dotnet/7.1.8/classi_text_1_1_kernel_1_1_pdf_1_1_layer_1_1_pdf_layer.html

Если бы кто-нибудь мог указать мне правильное направление, это было бы здорово. У меня уже есть некоторый опыт в iText7 для обработки pdf-аннотаций, но я не вижу здесь логики.

Комментарии:

1. «Слои» в PDF на самом деле является неправильным; в спецификации PDF более четко говорится о «дополнительных группах содержимого» (OCG). Практическая разница заключается в том, что каждая часть содержимого может быть отдельно помечена как принадлежащая к заданному OCG или нет; что еще хуже, часть содержимого может быть объявлена принадлежащей объединению, пересечению или дополнению OCG. Таким образом, создание слоя черным фактически означает повторение всего связанного содержимого, отслеживание текущего цвета, и каждый раз, когда есть переключатель OCG для переключения на черный или обратно к отслеживаемому цвету. Сложнее в еще худших ситуациях…

2. Короче говоря, iText не предлагает высокоуровневых методов для доступа к содержимому одного слоя (что иногда даже невозможно определить, см. «Еще хуже» выше). Вы, конечно, можете использовать низкоуровневые методы для повторения всего содержимого, но это не тривиально.