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 回答