我正在使用 iText PDF 5.4 和 Java2D 界面(java.awt.Graphics
画布),但我遇到了严重的渐变问题。
我正在画许多矩形,它们的颜色是LinearGradientPaint
. 这会产生大文件(例如 10 MB),并尝试在例如中打开结果Preview.app
会使计算机完全停止。问题似乎是内存使用,因为前几十个框绘制得相当快,然后性能随着更多的框线性下降,这意味着对于一个典型的页面,它需要超过 10 分钟才能打开。
Adobe Acrobat 也很慢,但至少需要 4 或 5 秒,而不是几分钟。
这是iText的错误吗?iText 中是否有控制渐变表示的设置或调整?我猜它会将它们分解成数百个单独的绘制命令,而不是使用直接渐变组件(如果存在的话——我知道它存在于 SVG 中,但我不知道 PDF 文件)。
条件是我留在 中awt.Graphics
,我不能重写我的渲染代码以不使用 Java2D。