【发布时间】:2019-02-13 03:54:29
【问题描述】:
我的要求是将页面级透明度混合颜色空间设置为设备 RGB。我正在尝试使用 pdfBox 来实现这一点。 屏幕截图来自 Adobe Acrobat 阅读器(印刷制作 -> 展平预览器 -> 更改页面级别透明度颜色空间),您可以在其中从下拉列表中设置值。
我尝试使用 PDFBOX 的 PDGraphicState 设置混合模式。实现屏幕截图中显示的页面级别透明度是否正确?
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 没有任何方法来设置混合模式。 所以我创建了新的 PDExtendedGraphicState 对象并执行了“copyIntoGraphicsState”。
是我遗漏了什么还是方法不对?
提前致谢。
编辑
之前
在 Adobe acrobat Pro DC 中打开文件。打开:工具 -> 印刷制作 -> 输出预览。尝试打开和关闭输出预览。你可以看到颜色变化。
Before
之后
在 Acrobat Pro DC 中打开相同的文件 (Before.pdf)。打开:工具 -> 印刷制作 -> 压平器预览 -> 查找页面级透明度混合色彩空间(见截图) -> 更改 -> 从下拉列表中选择设备 RGB -> 应用。现在您将获得我在此处添加的 after.pdf。
在此之后,如果您按上述方式打开输出预览,您将看不到颜色的变化。
After
【问题讨论】:
-
您的问题显然是关于 pdfbox,而不是 itext。所以我删除了itext 标签。
标签: pdf pdf-generation pdfbox acrobat