我正在使用 iText 从 Java 生成多页 PDF。问题:我的图表上的线条在某些页面之间改变颜色。
这是页面之间转换的屏幕截图:
此内容取自 Adobe Reader。线条的颜色在 OS X Preview.app 中是正确的。
在 Reader 中,顶部是#73C352,底部是#35FF69。在 Preview.app 中,该行是 #00FE7E。
对于可能导致这种差异的原因有什么想法吗?我从 Preview.app 保存了 PDF 并在 Adobe Reader 中打开它,但颜色仍然关闭。
Here is the PDF that is having trouble 。在 Adobe Reader 中打开它并查看第 11 页和第 12 页之间的过渡。
进一步检查后发现,java.awt.print.PrinterJob 似乎为每个 pageIndex 调用 print() 两次。这可能是一个线索。
最佳答案
颜色较深的页面的问题在于它们包含带有透明图像的图案对象。当涉及透明度时,Adobe Acrobat 会自动切换到自定义 CMYK 配置文件,这会导致颜色变暗。只有 Acrobat 可以做到这一点,其他观众表现得很好。解决方案是要么删除带有透明图像的图案对象(它似乎是PDF生成器引擎的绘图工件,它在页面上的任何地方都没有使用),要么您可以使页面成为透明度组的一部分并指定透明度组使用 RGB 色彩空间。
关于java - iText PDF 颜色在 Acrobat 中不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6130457/