2009-06-05 4 views
2

Я использую iText для создания документа RTF. После завершения будет составлено несколько сотен страниц. Тем не менее, я все время получаю ошибку outofmemory, когда она заканчивается добавлением в документ всех различных абзацев и таблиц, и пытается создать файл RTF (с document.close();)Можно ли постепенно вывести вывод с помощью iText RTF (библиотека Java)? (ошибка outofmemory)

Я увеличил Память Runtime с -Xmx350m, но уже невозможно увеличить ее, поскольку на компьютере пользователя не будет столько памяти.

Есть ли способ постепенно писать в документ RTF, а не в огромный блок в конце?

ответ

1

Я нашел вы можете установить его в явном виде кэш на диске, а не памяти с помощью:

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

Это делает его медленнее, чтобы произвести, но по крайней мере, он создает файл без ошибок. Тем не менее, я по-прежнему предпочитаю метод, который постепенно создает файл, если кто-то его знает.