iText 7 para Java: Guia Completo para Criar e Editar PDFs
iText 7 é uma biblioteca poderosa de código aberto (AGPL) para Java, projetada para criar, manipular e renderizar documentos PDF programaticamente. Ela é a sucessora da popular biblioteca iText 5 e oferece uma arquitetura modular totalmente reformulada, focada em desempenho, flexibilidade e facilidade de uso. Com iText 7, desenvolvedores podem resolver uma ampla gama de tarefas: desde a geração de faturas e relatórios simples até a criação de documentos complexos com validade jurídica, incluindo assinaturas digitais, formulários e metadados.
Por que usar iText 7? No mundo atual, o PDF é o formato universal para troca de documentos, garantindo que a aparência permaneça inalterada em qualquer dispositivo. Criar PDFs manualmente é trabalhoso e ineficiente, especialmente ao lidar com grandes volumes de dados. O iText 7 automatiza esse processo, dando aos desenvolvedores Java controle total sobre cada aspecto do documento: desde adicionar texto e imagens até criar formulários interativos e gerenciar permissões de acesso. A biblioteca é indispensável em sistemas de gestão documental, e-commerce, setor bancário e qualquer aplicação que exija geração ou processamento de PDF.
A biblioteca suporta todas as especificações PDF mais recentes, incluindo PDF 2.0. Ela também oferece módulos adicionais (add-ons) para conversão de HTML (pdfHTML), reconhecimento óptico de caracteres (pdfOCR), criação de SVG (pdfSVG) e processamento de imagens (pdfImage). É importante destacar que o iText 7 é distribuído sob licença dupla: AGPL (exige que o código-fonte da sua aplicação seja aberto) e comercial (para uso proprietário).
Instalação
Para instalar o iText 7 no seu projeto Java, utilize o sistema de build Maven ou Gradle. Abaixo está o comando exato para adicionar as dependências no arquivo pom.xml (Maven).
<!-- pom.xml -->
<dependencies>
<!-- Módulo principal do iText 7 -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext7-core</artifactId>
<version>8.0.4</version> <!-- Verifique a versão mais recente no Maven Central -->
<type>pom</type>
</dependency>
</dependencies>
Para Gradle (build.gradle):
implementation 'com.itextpdf:itext7-core:8.0.4'
Se você precisar apenas de módulos específicos (por exemplo, kernel, layout, io), pode adicioná-los individualmente:
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>kernel</artifactId>
<version>8.0.4</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>layout</artifactId>
<version>8.0.4</version>
</dependency>
Início Rápido: Exemplo Mínimo Funcional
O código a seguir cria um documento PDF simples com o texto "Hello, World!" e o salva no arquivo HelloWorld.pdf.
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Paragraph;
import java.io.FileNotFoundException;
public class HelloWorld {
public static void main(String[] args) throws FileNotFoundException {
// 1. Cria um PdfWriter que gravará os dados no arquivo
PdfWriter writer = new PdfWriter("HelloWorld.pdf");
// 2. Cria um PdfDocument — objeto que representa o próprio documento PDF
PdfDocument pdf = new PdfDocument(writer);
// 3. Cria um Document — objeto de alto nível para adicionar elementos (texto, tabelas, etc.)
Docum