0

iText PDF 5.4 を Java2D インターフェイス (java.awt.Graphicsキャンバス)と共に使用していますが、グラデーションに重大な問題があります。

ペイントがLinearGradientPaint. これにより、大きなファイル(10 MB など) が生成され、その結果を開こうとするとPreview.app、コンピューターが完全に停止します。問題はメモリの使用量にあるようです。最初の数十個のボックスはかなり速く描画され、その後、ボックスが増えるとパフォーマンスがやや直線的に低下します。つまり、通常のページを開くのに 10 分以上かかることを意味します。

Adobe Acrobat も遅いですが、少なくとも数分ではなく、4 ~ 5 秒ほどかかります。


これはiTextのバグですか?グラデーションの表現を制御する iTextの設定または微調整はありますか? 直接グラデーション コンポーネントを使用する代わりに、それらを何百もの個別のペイント コマンドに分解していると思います (もし存在する場合、SVG に存在することは知っていますが、PDF には手がかりがありません)。

awt.GraphicsJava2D を使用しないようにレンダリング コードを書き直すことはできません。

4

1 に答える 1

1

別のアイデアは、代わりにApache Batikを使用して SVG に出力することです。SVG に相当するものへの正しいトランスコーディングを有効にする方法を示すがあります。LinearGradientPaint

編集: 新しい Java2D-to-SVG ライブラリJFreeSVGがあるようです。最近の変更は、グラデーションが実装されていることを示しています。

于 2013-06-25T12:27:33.977 に答える