Java uses iText to generate word documents, with tables, images, and texts.