Antes de mais nada, pq nao pode RTF?
Jakarta POI (Google it).
E por que não pode ser RTF?
Por exemplo, se você gerar um arquivo .rtf e nomeá-lo como .doc, o Word carrega-o normalmente. Mas acho que o seu requisito é porque você precisa do formato mais compacto do .doc, que usa um recurso chamado “OLE Storage”.
Se você precisa de alguma coisa que sabidamente só existe no Word, e você está em uma máquina Windows com Office, e você não está escrevendo uma aplicação de servidor, pode tentar usar Office Automation - tente fazer funcionar usando VBA + VBScript, e depois converta para Java (não é fácil, na verdade). Essa conversão pode ser feita usando-se o pacote JACOB ( http://danadler.com/jacob/index.html ), mas não é fácil simular aquela função GetObject do VBScript, que normalmente é necessária no VBScript para invocar uma instância do Word que já esteja rodando. Deve ter alguém que tenha já conseguido simular a função GetObject.
Antes que alguém venha me dizendo: "Por que vc não faz em RTF?"
NÃO POSSO! Tem que ser .DOC.
Alguém conhece alguma ferramenta que possa gerar .DOC?