Como vão ?
Depois de ter experimentado o POI da Apache para manipular documentos em Excel e ter tido uma experiência não muito boa, nem cogitei usar o POI para Word. O uso para planilhas até que é fácil, só que existem problemas. Por exemplo ao alterar o valor das células, o excel não reconhece tais alterações e por isso não atualiza fórmulas linkadas às esses células. Apenas depois de “passar” pela célula (estou falando de clicar nela e em seguida sair) é que os valores eram atualizados. Para completar, fiz um teste que apenas abria e fechava uma planilha específica e o nosso amigo POI alterou uma série de links e fórmulas de maneira completamente aleatória.
Foi então que decidi usar o pacote OpenOffice via UNO para gerar documentos nesse formato e em seguida exporta-lo para Word. Depois de ter resolvido uma série de problemas, a maioria relacionados com o comportamento do OpenOffice em relação a inserção de elementos de texto (bullets, numbering, tabelas, etc.), em parte claro, provocados pela minha inexperiência com a ferramenta, cheguei a minha versão final ! Como se não bastasse, o OpenOffice entra em CRASH de forma também aleatória. Desisti !
Em fim, minha pergunta é : como usar o XML Schema do Word 2003 para produzir um documento a partir de uma ferramenta Java ? Existem por exemplo objetos já prontos em Java que representam um parágrafo e seus atributos e eu o insira no arquivo em XML para Word ?
Grato pessoal !
Gerar documento Word - POI e UNO do OpenOffice descartados!
4 Respostas
Que tal um RTF?
Já passei por problema semelhante ao seu.
Para minha surpresa, no site da própria Microsoft você pode baixar TODA a documentação referente aos formatos XML do Office, basta que você tenha paciência de ler toda a documentação (e acredite, você vai precisar! :)).
Com relação a gerar o XML, já inclusive iniciei tempos atrás uma pequena biblioteca para gerar arquivos do Excel e Word usando o formato, mas acabei desistindo (no caso do Excel, optei por usar o Jxl, e no caso do Word, bem, nunca precisei gerar arquivos neste formato). Ao gerar o XML, você irá gerá-lo exatamente como faria com um XML normal, nada de novo nisto. Minha sugestão consiste em você mapear alguns objetos para o XML, o que vai facilitar muito a compreensão do modelo que você irá persistir.
PS:
lembre-se que há limitações no formato XML adotado pelo Office pré 2007.
fiaux,
o RTF é realmente uma opção. Mas fico na dúvida quanto aos elementos pré-existentes no meu template, como exemplo os rodapés. Não cheguei a testar mas é possível eu inserir uma “String” em RTF em um documento Word com vários outros elementos já existentes ?
kicolobo,
a idéia essa mesmo ! Queria saber se já existia algo “meio pronto”. Acho que vou fazer alguns testes tanto para XML como para RTF.
Muito obrigado pessoal !
fiaux,
o RTF é realmente uma opção. Mas fico na dúvida quanto aos elementos pré-existentes no meu template, como exemplo os rodapés. Não cheguei a testar mas é possível eu inserir uma “String” em RTF em um documento Word com vários outros elementos já existentes ?
Dê uma olhada no iText: http://itextdocs.lowagie.com/tutorial/rtf/index.php. Ele dá suporte a header e footer por exemplo (já que falou dos rodapés).