Я обнаружил, что вы можете установить его для явного кэширования на диске, а не в памяти, используя:
Document document = new Document();
RtfWriter2 writer2 = RtfWriter2.getInstance(document, new FileOutputStream("document.rtf"));
writer2.getDocumentSettings().setDataCacheStyle(RtfDataCache.CACHE_DISK);
document.open();
Это замедляет процесс генерации, но, по крайней мере, создает файл без ошибок. Однако я все же предпочел бы метод, который постепенно создает файл, если кто-нибудь его знает.