As you are specifically mentioning Java as your environment you might want to take OpenOffice or StarOffice into account - they have an API that's a lot easier to talk to from Java than ActiveX or remote-controlling Word.
It's no more heavyweight than Word is. References and docs should be easy to find.
I've worked in a company where we used Remote-controlled-Word a lot and finally switched to StarOffice. This wasn't for printing but for document conversion (e.g. from Word to HTML), but should be sufficiently similar.
Of course I'm talking "old versions of Word" but we usually had the problem of Word locking up with some arbitrary dialog requesting to confirm whatever Word has found - an operation that our server (running in the background with no Desktop contact) obviously was not able to. This went a lot better after switching to StarOffice.