This is a difficult task, made even more difficult if you want flawless results (impossible without having Word). I don't think there are any open-source Java APIs that do it all for you (Update: I am wrong, see below).
Your basic options are as follows:
- Using JNI/a C# web service/etc script MS Office (only option for 100% perfect results)
- Using the available APIs script Open Office (90+% perfect)
- Use Apache POI & iText (very large job, will never be perfect).