Artigo Java Magazine 64 - iText e JODConverter

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (0)  (0)

Artigo da Revista Java Magazine Edição 64.

Esse artigo faz parte da revista Java Magazine edição 64. Clique aqui para ler todos os artigos desta edição

iText e JODConverter

Utilizando Java para converter arquivos para PDF

Aprenda a gerar arquivos PDF a partir de arquivos de texto, imagens ou documentos criados por suítes de escritório

 

Do que se trata o artigo:

Neste artigo veremos uma solução para converter documentos de diversos formatos para PDF utilizando ferramentas feitas em Java.

Para que serve:

Possibilitar que aplicações exibam em PDF documentos em formatos não portáveis. Ou ainda, possibilitar que armazenem documentos em um único formato padrão, mas aceitem que usuários finais possam enviar arquivos em diferentes formatos.

Em que situação o tema é útil:

Para sistemas que possuem workflow baseado em documentos eletrônicos e querem uma forma de padronizar o formato de trâmite desses arquivos. O formato PDF possui vários recursos, como o suporte a assinatura digital e formulários eletrônicos. Dessa forma, para tirar vantagem desses recursos, pode ser necessário converter documentos legados para o formato.

 

iText e JODConverter:

O iText é um projeto que permite criar novos arquivos PDF ou manipular existentes. Ele possui uma API considerada de baixo nível e é utilizado por várias ferramentas de geração de relatório. Utilizamos o iText para elaborar um simples algoritmo de criação de PDF a partir de um arquivo TXT. Também o utilizamos para criar arquivos PDF a partir de imagens JPG, GIF, PNG ou TIFF.

O JODConverter é uma API que facilita o uso do UNO (Universal Network Objects), que por sua vez, é uma API disponibilizada pelo Open Office para acessar remotamente suas funcionalidades. O UNO permite utilizar os algoritmos de conversão para PDF do Open Office, possibilitando converter arquivos de vários formatos como DOC, RTF, ODT, XLS, ODS, etc. O UNO é uma API de baixo nível, dessa forma, utilizamos o JODConverter que tem por objetivo, criar uma casca sobre o UNO facilitando a execução da conversão de documentos.

 

Portable Document Format (PDF) é um formato de arquivo criado pela Adobe Systems. O formato permite capturar e visualizar informações consistentes – a partir de quase todo aplicativo ou sistema operacional – e compartilhá-las praticamente com qualquer pessoa, em qualquer lugar. Por este motivo, tornou-se um formato muito popular para troca de documentos pela Internet, em um ambiente heterogêneo. O formato também é popular por agregar funcionalidades de assinatura digital, formulários e multimídia, e exibi-los de forma portável entre diferentes sistemas operacionais. Dessa forma, tornou-se muito comum para uma aplicação web exibir dados para o usuário no formato PDF. Seja em relatórios, seja em documentos importantes, como notas fiscais ou recibos.

Uma crítica comum que o PDF enfrentava tradicionalmente, era a de ser um formato de arquivo proprietário – apesar de ser, em grande parte, baseado no padrão PostScript. Mas a Adobe recentemente abriu a especificação do PDF, que foi ratificado em julho deste ano pelo padrão ISO 32000-1.

Neste artigo será demonstrado como utilizar Java para criar documentos PDF, a partir de documentos de suítes de escritório, imagens ou arquivos de texto. Isto será útil para aplicações que possuem documentos armazenados nesses formatos, mas desejam exibir o documento de maneira portável em um formato popular e read-only.

 

Ferramentas utilizadas

Iremos utilizar a biblioteca iText para converter arquivos TXT e imagens. Para converter documentos do Microsoft Office (ou Open Office) iremos utilizar o JODConverter.

O código fonte do artigo está disponível para download em formato ZIP no site da Java Magazine. Dentro do ZIP é possível encontrar todos os JAR’s necessários para rodar os exemplos com sucesso. Feito o download, inclua todos os JAR’s presentes na pasta lib no classpath da aplicação.

Caso o leitor queira, pode fazer o download dos projetos nos seus respectivos sites. Para efetuar o download, acesse o site da biblioteca iText e do projeto JODConverter (veja a seção de links no final do artigo). Inclua o único JAR do iText e todos os JAR’s presentes na pasta lib da distribuição do JODConverter no classpath.

 

Interface para conversão de documentos

Para tornar a conversão de documentos extensível e adaptável criamos a interface da Listagem 1. O contrato dessa interface é receber um array de bytes de um documento em formato específico e transforma-lo em PDF. Caso algum problema ocorra na conversão, uma exceção do tipo ImpossivelConverterDocumentoException será lançada.

O propósito da interface ConversaoParaPDF é não acoplar a aplicação com as API’s utilizadas. Isso permite que possamos mudar os algoritmos de conversão sem grandes impactos. Outro benefício é a possibilidade do uso de polimorfismo, como veremos mais adiante.

 

Listagem 1. ConversaoParaPDF.java - Interface a ser implementada pelos algoritmos de conversão.

public interface ConversaoParaPDF {       

  public byte[] converterDocumento(byte[] documentoParaConverter)

"

A exibição deste artigo foi interrompida :(
Este post está disponível para assinantes MVP

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?