Можно ли постепенно очищать вывод с помощью iText RTF (библиотеки Java)? (ошибка памяти) - PullRequest
3 голосов
/ 05 июня 2009

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

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

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

1 Ответ

2 голосов
/ 05 июня 2009

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...