将页面级透明度混合颜色空间设置为设备RGB

问题描述 投票:1回答:2

我的要求是将页面级透明度混合颜色空间设置为设备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没有任何setBlend Mode方法。所以我创建了新的PDExtendedGraphicState对象并执行了“copyIntoGraphicsState”。

我错过了什么或者方法错了吗?

提前致谢。

编辑 在Adobe Acrobat Pro DC中打开文件之前。打开:工具 - >打印生产 - >输出预览。尝试打开和关闭输出预览。你可以看到颜色的变化。 Before

在Acrobat Pro DC中打开相同文件(Before.pdf)之后。打开:工具 - >打印生产 - >拼合预览 - >查找页面级透明度混合颜色空间(参见屏幕截图) - >更改 - >从下拉列表中选择设备RGB - >应用。现在你将得到我在这里添加的after.pdf。在此之后如果您打开如上所述的输出预览,您将看不到颜色的移动。 After

pdf pdf-generation pdfbox acrobat
2个回答
0
投票

我认为,这里的部分问题是混合模式(正常,变暗,乘法,颜色刻录等),然后是页面级透明度混合颜色空间(DeviceRGB或DeviceCMYK)。后者可以在InDesign中设置(有一个菜单项),但是使用PDFBox或其他工具设置此参数就是这里所需要的。因此,它不是叠印或混合模式,它设置颜色空间(在OP的PDF中设置为“无”以进行修改)。

在我的测试中,如果此设置设置为“none”,则两个RGB对象之间的透明度混合无法正常工作,并且如果设置为“DeviceRGB”或适当的RGB颜色空间而没有更改叠印或混合模式,则可以正常工作。

似乎Enfocus PitStop Pro和Callas pdfToolbox都可以设置此参数,但如果PDFBox也可以这样做,那将非常有用。


0
投票

将DeviceRGB设置为透明度混合文档的颜色空间。我们用过:

group.setItem(COSName.S, COSName.TRANSPARENCY);
group.setItem(COSName.CS, COSName.DEVICERGB);
page.getCOSObject().setItem(COSName.GROUP, group)

这解决了问题。谢谢你们提出不同的方法。

© www.soinside.com 2019 - 2024. All rights reserved.