【发布时间】:2011-05-25 20:26:34
【问题描述】:
我正在使用 iText 从 Java 生成多页 PDF。问题:我图表上的线条在某些页面之间改变颜色。
下面是页面之间转换的截图:
本文取自 Adobe Reader。这些线条在 OS X Preview.app 中是正确的颜色。
在阅读器中,顶部是#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() 两次。这可能是一个线索。
【问题讨论】:
-
这似乎与页面上是否出现某种类型的元素有关。 PrinterJob 为每个 pageIndex 调用 print() 两次。第一次,它传入一个 sun.print.PeekGraphics 作为图形对象。第二次,它传入一个 apple.awt.CPrinterGraphics 对象。 PeekGraphics 是一个“试运行”,看看我会做什么样的绘制操作。显然,如果完成某种类型的绘制操作,颜色会变为较暗的变体。不确定该操作类型到底是什么。