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 を使用しないようにレンダリング コードを書き直すことはできません。