JWORD: Manipulador de Documentos Java

Propaganda
JWORD: Manipulador de Documentos Java1
Rayanne Heluy Bezerra2, Jéssica Luanne dos Santos Oliveira3, Victor Augusto da Silva
Girotto4, Jeysel de Paula5, Jair Alves Barbosa6
Resumo
O JWord foi concebido pela necessidade do constante manuseio de templates
de documentos com formato Microsoft Word. Com o objetivo de agilizar esse manejo foi
criada esta biblioteca (componente) que utiliza a API Apache POI, que tem como missão
manipular arquivos Microsoft Office em seus diversos formatos. O JWord é capaz de
substituir valores dos templates através de um interfaces de métodos bem definidas, dá a
possibilidade de buscas textuais e outras atividades. Esta biblioteca será implantada em
projetos futuros da Fábrica de Software da Universidade Católica de Brasília e após sua
validação poderá ser utilizada pela comunidade java.
Palavras-chave: Bibliotecas, Componentes, Java, Microsoft Word.
1. Introdução
A fábrica de software da Universidade Católica de Brasília desenvolve diversos
projetos que apresentam a necessidade de gerenciar documentos. Sendo que boa parte
destes projetos fazem uso do formato Microsoft Office Word por ser padrão de
documentação dos clientes da referida empresa. Uma das formas de uso são os templates.
Estes são uma espécie de modelo para a criação de novos documentos que contém a
mesma aparência do template em questão. Permitem a redução de custos e de prazos de
produção por diminuir a incidência de soluções isoladas e por servir de referência para a
criação de arquivos novos.
Devido à constante necessidade de manipular documentos Word e pensando em
projetos futuros foi identificada a necessidade da automatização deste processo. Como a
linguagem Java é padrão dos projetos desenvolvidos pela fábrica, resolveu-se criar uma
biblioteca nesta linguagem que fosse responsável pela manipulação destes documentos.
De acordo com (POI, 2011) o Apache POI é umas das bibliotecas mais utilizadas
para trabalhar com documentos Microsoft Office Word em Java, que se encontra na versão
beta 3.8.
1
Trabalho desenvolvido como projeto de pesquisa no curso Bacharelado em Ciência da Computação da
Universidade Católica de Brasília.
2
Aluno do curso de Bacharelado em Ciência da Computação
3
Aluno do curso de Bacharelado em Ciência da Computação
4
Aluno do curso de Bacharelado em Ciência da Computação
5
Professor Orientador
6
Professor Co-Orientador
2. Referencial teórico
O projeto Apache POI existe desde 2001 e foi criado com o intuito de gerar e manter
uma API Java para manipular vários formatos de arquivo, podendo então ler e escrever em
Excel, Word e PowerPoint. Esta API atende até as versões de 2007 destes tipos de
documentos, com as extensões: .xls, .doc, .ppt, .xlsx, .docx, .pptx.
O projeto provê vários Jars, não sendo necessária a utilização de todos eles para
cada formato de documento, ou seja, deve-se utilizar Jars específicos para cada formato.
HWPF foi o Jar adotado, pois é a API que trabalha com a manipulação de documentos
Word 97 (-2003), que suporta a leitura e algumas funções de escrita, permitindo não só
criar como alterar arquivos Word.
Trata-se de uma biblioteca simples e bem limitada, pois é principalmente voltada a
extração de textos. Esta foi uma das dificuldades encontradas ao utilizar este projeto, pois
limitam as funções incorporadas na biblioteca.
3. Metodologia
Após fazer um estudo sobre o funcionamento da API encontrada, deu-se inicio ao
desenvolvimento do JWord. O Apache POI possui dois Jars para manipulação de
documentos Word, o HWPF e o XWPF, o primeiro manipula arquivos .doc e o segundo
arquivos .docx. Não foi possível trabalhar com este, pois apenas executa extrações de
textos, impossibilitando que houvesse modificações no seu conteúdo. Sendo assim, o
JWord está temporariamente limitado a manusear somente arquivos .doc.
No desenvolvimento da biblioteca foram criados métodos que servem para fazer
extração de dados e criação de documentos Word a partir de templates. É criado um novo
arquivo com a formatação do template trabalhado, os parâmetros existentes neste são
substituídos por valores recebidos na aplicação. Nas figuras 1 e 2 é possível ver exemplos
de documentos templates.
Figura1: Template com valores default.
Figura 2: Documento criado a partir do template com os valores substituídos.
4. Resultados
O resultado obtido na criação do JWord foi automatizar o manuseio de documentos
Word, permitindo inclusive a substituição de valores contidos em templates com formato
.doc, limitado a apenas templates Microsoft Word desse formato.
Esta biblioteca foi utilizada no primeiro projeto (o GERDOC) e se tem mostrado
produtiva e eficiente ao que se propõe.
5. Conclusões
A partir da identificação do problema com a manipulação de templates em documentos
Microsoft Word, deu-se início a pesquisas para o desenvolvimento do JWord. Após sua
construção o problema foi suprido parcialmente, devido a limitações da API utilizada.
Indicamos como trabalho futuro o aprimoramento da API a todos os documentos Word,
inclusive os 2007.
6. Referências Bibliográficas:
Apache POI - the Java API for Microsoft Documents. Disponível em:
http://poi.apache.org/ Acessado em 25 de julho de 2011
Oliver, Andrew C.; Klute, Rainer; Fisher, David. Apache POI - Component Overview.
Disponível em: http://poi.apache.org/overview.html#components Acessado em 25 de julho
de 2011
Download