Olá desenvolvedores, neste tutorial iremos utiliza o iText para que a aplicação de envio de e-mails possa enviar também algum documento anexado ao e-mail. Até este momento a aplicação que implementamos funciona corretamente e, inclusive, aprendemos como estiliza-la utilizando HTML e folha de estilo inline.

Para que você compreenda bem, o iText é uma biblioteca do Java para manipulação de documentos em PDF. Trata-se de uma ferramenta de código aberto utilizado tanto para criar arquivos PDF como relatórios, como para boletos ou mesmo ingressos digitais.

Entretanto, para o correto funcionamento do iText alguns requisitos deverão ser observados, como por      exemplo o conteúdo só deverá estar disponível baseado em uma entrada de dados do usuário ou de uma base. O conteúdo precisa ser customizado, e gerado após a execução de um processo de batch.

Como não temos um banco de dados, implementaremos um simulador, isto é, simularemos um arquivo de PDF e depois o enviaremos por e-mail. Porém, em sua aplicação provavelmente você terá os arquivos gravados no banco de dados.

OBTENDO A BIBLIOTECA ITEXT

O primeiro passo acessar o código da biblioteca iText Core que você poderá obter clicando aqui. Copie o código especificado e o cole no arquivo de dependências enviando-email/pom.xml. salve e aguarde que o Eclipse faça o seu trabalho baixando as dependências.

CRIANDO A SIMULAÇÃO

Agora na classe ObjetoEnviaEmail, logo após o método implementado, escreveremos um segundo método, o simuladorDePDF(). Observe que como o método retorna um arquivo de PDF em sua assinatura implementamos a classe FileInputStream do pacote java.io.

O método que estamos criando simula um PDF ou qualquer outro arquivo que possa ser enviado em anexo por e-mail. Que pode ser também um arquivo base64 vindo do banco de dados. Ou em um array de bytes, ou ainda uma Stream de arquivos.

No escopo do método instancie um documento da classe com.itextpdf.text e também um arquivo (file) que por ser criado em tempo de execução receberá como argumento fileanexo.pdf. Mas precisamos criá-lo, então invocaremos o creatNewFile().

Por fim, finalizaremos escrevendo o pdf pegando a instância dele, o document, e criando um objeto de saída recebendo o arquivo como parâmetro.

PdfWriter.getInstance(document, new FileOutputStream(file));

Então abrimos o documento e inserimos o conteúdo adicionando um parágrafo. Feche o documento. Retorne o arquivo.

EM POUCAS PALAVRAS

Neste tutorial criamos um simulador de pdf que não apenas cria mas que também escreve neste arquivo o texto especificado por nós. Agora precisamos de um outro método para implementarmos a funcionalidade que nos permitirá anexar o arquivo. Mas é assunto para o próximo tutorial.