There are various ways to tackle this, and it's hard to recommend one over the other given the lack of detail. You could use FlyingSaucer library to render CSS-styled XHTML or XML as PDF. Or, if you have highly regular data in XML form, you could use Apache FOP to render it to PDF using an XSL-FO stylesheet. If the data is rather irregular, writing code using the iText or PDFBox APIs to create PDFs would be an option.
Alternatively, you can create
RTF templates and search-and-replace placeholders in that. RTF can be opened by just about any wordprocessor, so is a good substitute for actual Word files (which are much harder to create).