Tenho um cliente que tem como uma das necessidades exportar um .doc, a partir de conjunto de dados obtidos de um sistema web já existente.
Ele quer poder editar esse documento como quiser. É algo como um template de contrato ou ata (relativamente simples, é texto puro, com no máximo um cabeçalho e paginação, sem imagens) que pode ser modificado de diversas maneiras não previsíveis.
Pesquisei sobre o assunto e muitos indicam o Apache POI, mas li (não sei se procede) que o suporte à manipulação de .doc é restrita e essa parte do projeto anda meio parada…
Também indicaram RTF + iText, não sei se dá para fazer o que descrevi acima com o iText, no caso do cabeçalho.
Quem já teve experiência com manipulação de documentos do Office via Java, poderiam dar algumas dicas?
O meu CTO, tinha necessidade de criar e manipular um documento Word (DOC) com Java.
Ele me falou de RTFTemplate , Apache POI.
Uma vez que estas APIs não eram fáceis de usar, e minha empresa prefere soluções abertas.
Finalmente, a mudança de estratégia, optamos por um formato aberto Open Document Format (ODF) OpenOffice.org
Devido a este formato é aberto e porque existem boas APIs Java para lidar com ele. OpenOffice.org 3.1.1 Software Development Kit (SDK), JODReports, JODConverter, ODF Tools, ODFDOM …
JODConverter automates conversions between office document formats using OpenOffice.org. Supported formats include OpenDocument, PDF, RTF, Word, Excel, PowerPoint, and Flash. It can be used as a Java library, a command line tool, or a Web application.
O meu CTO, tinha necessidade de criar e manipular um documento Word (DOC) com Java.
Ele me falou de RTFTemplate , Apache POI.
Uma vez que estas APIs não eram fáceis de usar, e minha empresa prefere soluções abertas.
Finalmente, a mudança de estratégia, optamos por um formato aberto Open Document Format (ODF) OpenOffice.org
Devido a este formato é aberto e porque existem boas APIs Java para lidar com ele. OpenOffice.org 3.1.1 Software Development Kit (SDK), JODReports, JODConverter, ODF Tools, ODFDOM …
JODConverter automates conversions between office document formats using OpenOffice.org. Supported formats include OpenDocument, PDF, RTF, Word, Excel, PowerPoint, and Flash. It can be used as a Java library, a command line tool, or a Web application.
Preciso editar um documento já existente (incluir, excluir e editar dados). Dentre estas bibliotecas que você citou, qual é a melhor para fazer isto em Java?
Para editar um documento já existente (incluir, excluir e editar dados) :
Uma solução é utilizar um Documento ODT Template no qual meter variáveis ${var1}
elas são automaticamente substituídas por a valor da variávei chamada var1.
Os dados podem vir duma DBMS ou da Web ou de não sei de onde
Prepara uma “Template” en entrada “INPUT Template” et o programma transforma a Template e fabrica
um autro documento “Output” com os dados que você quizer.
Exemplo de codigo para fabricar um doc a partir d’um Doc Template em input et dos dados que vem da DBMS com DataAccessManager :
Se você quizer tanho o projeto ECLIPSE .
Tambem pode fabricar um documento OpenOffice completo.
Utilizando o SDK de OpenOffice.
Para fazer isso tem algums exemplos no magazine françês chamado Progrmmez :
Geração de documentos OpenOffice.org com Java
O projeto OpenOffice.org tem sido inicialmente com base em fontes fornecidas pela Sun Microsystems, preparado para uma futura versão do StarOffice. Essas fontes são escritas em C + + e oferecem diversas possibilidades de linguagem, e funcionalidades de script e APIs para Java e outras linguagens de programação.
Fonte em françês : http://fr.openoffice.org/about-main.html
Tentei utilizar o exemplo que você postou e na linha 17 ‘DocumentTemplateFactory documentTemplateFactory = new DocumentTemplateFactory();’ não é possível instanciar a classe DocumenttemplateFactory, ‘NoClassDefFoundError’, acredito ser a versão da biblioteca ‘jodreports’ estou utilizando a versão 2.4, qual versão vc utilou?
Tentei utilizar o exemplo que você postou e na linha 17 ‘DocumentTemplateFactory documentTemplateFactory = new DocumentTemplateFactory();’ não é possível instanciar a classe DocumenttemplateFactory, ‘NoClassDefFoundError’, acredito ser a versão da biblioteca ‘jodreports’ estou utilizando a versão 2.4, qual versão vc utilou[url]?[/quote]
Meu problema resolvi.
Mas gostaria de agradecer o post, pois foi através dele que conheci o JDOReport, e resolveu o meu problema que eu estava tendo com o WORD, alias tchau para o WORD.
O documento que o meu cliente tem salvo em WORD é de 300k, abrindo com o openOffice e salvando em .odt, já baixou para 44k e sem perder a formatação, utilizei um exemplo básico em http://pedrocavalero.blogspot.com/2011/05/criando-documento-partir-de-templates.html
Aconselho a todos que pretendem gerar um documento novo a partir de um template, que utilizem essa ferramenta, eu estava tendo tantos problemas com layout do arquivo WORD que quase fiz todo o documento em HTML.