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