Gerando arquivos PDF com iText

Postado em por Wolmir Cezer Garbin em Java | 1700 Visualizações
Última atualização em:

Veja neste post uma maneira simples de gerar arquivos em PDF com iText, adicionando parágrafos e formatando o texto para gerar arquivos com mais profissionalismo.

Todo mundo tem algo para vender, AnuncieOn.com o melhor site de anúncios grátis de todo o Brasil. ABRIR

Para gerar PDF com iText, primeiro adicione a biblioteca do iText ao seu projeto.

<dependency>
    <groupId>com.lowagie</groupId>
    <artifactId>itext</artifactId>
    <version>4.2.2</version>
</dependency>

Caso seu projeto não utilize maven, baixe a biblioteca e adicione manualmente em seu projeto.

Para este exemplo, o arquivo completo do pom.xml será:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>br.com.sample</groupId>
    <artifactId>pdf-itext</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>

        <dependency>
            <groupId>com.lowagie</groupId>
            <artifactId>itext</artifactId>
            <version>4.2.2</version>
        </dependency>

    </dependencies>
</project>

Note que você pode manter a biblioteca do iText sempre atualizada, conferindo as versão através do link: https://mvnrepository.com/artifact/com.lowagie/itext

Agora basta criar o código que irá gerar seu arquivo. Veja:

import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.FontFactory;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;

import java.io.FileOutputStream;
import java.io.IOException;

public class SampleTest {

    public static void main(String[] args) {

        // criação do objeto documento
        Document document = new Document();

        try {

            PdfWriter.getInstance(document, new FileOutputStream("/home/wolmir/pdf_ReceitasDeCodigo.pdf"));
            document.open();

            // adicionando um parágrafo ao documento
            document.add(new Paragraph("Gerando um PDF usando iText em Java"));

            // adicionando um parágrafo com fonte diferente ao arquivo
            document.add(new Paragraph("Adicionando outro paragrafo", FontFactory.getFont(FontFactory.COURIER, 12)));

        } catch(DocumentException de) {
            System.err.println(de.getMessage());
        } catch(IOException ioe) {
            System.err.println(ioe.getMessage());
        } finally {
            document.close();
        }
    }
}


Entendendo o Código

Primeiro, na linha:

Document document = new Document();

Criamos uma instancia de Document, classe importada do pacote com.itextpdf.text. Logo em sequência, usamos o PdfWriter passando o novo Document e o caminho que será salvo o arquivo.

Note que para gravar em sua maquina precisa ajustar este caminho.

Em sequência, utilize o document.open() para iniciar a edição do arquivo.

Por fim, adicione os parágrafos ao documento usando document.add(new Paragraph("...")).

Não esqueça de fazer os tratamentos de exceção e de usar no finally o document.close(); para fechar o arquivo.

Qualquer dúvida deixe nos comentários.

Não esqueca de deixar suas dúvidas nos comentários e compartilhar este post.


Wolmir Cezer Garbin

Wolmir Cezer Garbin


Sou formado em Desenvolvimento de Sistemas para Internet pela faculdade Mater Dei e Pós graduado em Desenvolvimento de sistemas em Java pela UTFPR. Trabalho a mais de 9 anos com desenvolvimento em Java, Android e Web utilizando as principais tecnologias do mercado. Atuo como professor na faculdade Mater Dei, programador na Garbo Software e criador do Receitas de Código.

Ver mais

FIQUE POR DENTRO

Receba as novidades todo mês em seu e-mail!

Apoiadores


Publique seu post no Receitas de Código

Agora você pode publicar seu post no Receitas de Código e compartilhar seu conhecimento com muitas pessoas!

Quero publicar