Мое требование состоит в том, чтобы установить цветовое пространство смешивания прозрачности на уровне страницы в Device RGB.Я пытаюсь использовать pdfBox для достижения этой цели.Снимок экрана получен из программы чтения Adobe Acrobat (Print Production -> Flatten Previewer -> изменить цветовое пространство прозрачности уровня страницы), где вы можете установить значение из раскрывающегося списка.
Я попытался установить режим наложения, используя PDGraphicState из PDFBOX.Это правильный способ достижения прозрачности на уровне страницы, показанный на скриншоте?
PDGraphicsState gState = new PDGraphicsState(page.getArtBox());
gState.setBlendMode(BlendMode.OVERLAY);
PDExtendedGraphicsState pde = new PDExtendedGraphicsState();
pde.copyIntoGraphicsState(gState);
final COSName blendMode =page.getResources().add(pde);
Но это не работает.У меня есть некоторый другой код, который использует «PDExtendedGraphicState»
, который будет добавлен на страницу с помощью page.getResources (). Add (graphicsState) Но PDExtendedGraphicState не имеет никакого метода для setBlend Mode.Поэтому я создал новый объект PDExtendedGraphicState и сделал «copyIntoGraphicsState».
Я что-то упустил или неправильный подход?
Заранее спасибо.
EDIT До Открыть файл в Adobe Acrobat Pro DC.Откройте: Инструменты -> Печатная продукция -> предварительный просмотр.Попробуйте открыть и закрыть предварительный просмотр.Вы можете увидеть цветовые сдвиги. До
После Откройте тот же файл (Before.pdf) в Acrobat Pro DC.Откройте: Инструменты -> Печатная продукция -> Предварительный просмотр Flattener -> Поиск цветового пространства с прозрачностью на уровне страницы (см. Скриншот) -> изменить -> выбрать Device RGB из выпадающего меню -> применить.Теперь вы получите после .pdf, который я добавил здесь.После этого, если вы откроете вывод Preview, как указано выше, вы не увидите смещение цветов. После