Sure, you can use POI or docx4j. For either, you'd be much better off using docx rather than the legacy binary doc format.
For docx4j (my project), see creating-word-docx-documents-dynamically-from-grails
At your step 2 (add user details), there are a variety of approaches you can use.