Este é um post disponível para assinantes MVPArtigo Java Magazine 64 - iText e JODConverter
Artigo da Revista Java Magazine Edição 64.

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
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
ATENÇÃO! A exibição deste artigo foi interrompida.
Este é um post disponível para assinantes MVP
4 COMENTÁRIOS
É difícil encontrar algo tão bem comentado na internet, achoque vale a pena ter pago por ele.
Agora, estou com uma dúvida. No trecho 3, tem a linha
return IOUtils.toByteArray(TesteConversao.class.getResourceAsStream(arquivo));
Onde TesteConversao.class.getResourceAsStream(arquivo) está como null mesmo TesteConversao.class ta preenchido e arquivo preenchido
Pode me ajudar ? Obrigado
Lembre-se que para executar o exemplo de forma correta voce precisa do arquivo "/br/com/jm/conversor/pdf/texto.txt" no classpath. Se voce baixar o arquivo zip da revista o codigo fonte ja possui tudo, se voce estiver programando no seu computador por ti mesmo tem que incluir o arquivo ou mudar a localizacao para outro arquivo que voce queira.
Não encontrei o link para baixar, voce pode informa-lo Por favor ?
O exemplo que voce informou só funciona para txt ? Penseo que se alterar a linha
new ConversaoAPartirDeTexto(); para ConversaoAPartirDeTextoOffice() eu conseguiria passar de Rtf para Pdf que é a minha dúvida principal.
Obrigado pela resposta
o link do arquivo é http://www.devmedia.com.br/resumo/download.asp?site=6&idrevista=106
Space do autor


0
0
