We tried a lot of things but they were all crap solution. We had to delivery those "word" reports so the solution was pretty bad: Generate Jasper RTF and open as an Word Document.
When you open this rtf, the result is just horrible. You can't properly edit those dodge tables generated by jasper. Other problem is when you save this document as .doc, file size increased from 5 MB to 40 MB.
So... there were I again... playing around with the problem...
I decide to create an API in Java to generate Word documents from Java code. The Document generated HAS to be compatible with Microsoft Word and can't have any manipulation - so has to be ready for the end user!
I wrote two implementations: one for Word 97 - 2003 and another for Word 2004 +.
To be honest I spent more time in W2004 because this is the current standard.
I have created the java project and hosted in Google code:
http://code.google.com/p/java2word/
The philosophy is have something in Java and really easy like:
IDocument myDoc = new Document2004();
myDoc.getBody().addEle(new Heading1("Heading01"));
myDoc.getBody().addEle(new Paragraph("This is a paragraph..."));
You are Java dev and deal with this API. You Don't need to worry about the implementation!
*Project has 97% of code test coverage.
** When I say no "special" components I mean not using any MS library.
In order to use the Java2Word you will need in your classpath xstream (if you use images) and log4j (for other than JBoss server).
Please refer to dependencies section in the project page.