3

iTextを使用してRTFドキュメントを作成しています。完了すると、数百ページになります。ただし、さまざまな段落とテーブルをすべてドキュメントに追加し終えて、実際にRTFファイルを作成しようとすると(document.close();を使用して)、メモリ不足エラーが発生し続けます。

-Xmx350mを使用してランタイムメモリを増やしましたが、ユーザーのコンピュータにはそれほど多くのメモリがないため、これ以上増やすことはできません。

最後に巨大なブロックではなく、RTFドキュメントに徐々に書き込む方法はありますか?

4

1 に答える 1

2

以下を使用して、メモリではなくディスクに明示的にキャッシュするように設定できることがわかりました。

Document document = new Document();
RtfWriter2 writer2 = RtfWriter2.getInstance(document, new FileOutputStream("document.rtf"));
writer2.getDocumentSettings().setDataCacheStyle(RtfDataCache.CACHE_DISK);
document.open();

これにより、生成が遅くなりますが、少なくともエラーなしでファイルが作成されます。ただし、誰かが知っている場合は、ファイルを徐々に作成する方法を使用したいと思います。

于 2009-06-05T13:10:41.073 に答える