Este repositório foi criado com o objetivo de fornecer um exemplo prático de como gerar arquivos PDF utilizando a biblioteca iText no contexto de uma disciplina de Programação Orientada a Objetos (POO). Meu nome é Ester Pequeno Trevisan, e sou monitora da disciplina de POO no Instituto Federal da Paraíba, campus Monteiro. Neste repositório, explico e disponibilizo um código que demonstra como adicionar texto, imagens e tabelas em um PDF, com um exemplo focado na criação de uma nota fiscal para um mercadinho.
Aqui, você encontrará exemplos de código para:
- Adicionar texto ao PDF
- Inserir imagens no documento
- Criar e formatar tabelas
Esses exemplos são aplicáveis para diversas situações, como a geração de relatórios ou documentos automatizados. No caso específico deste repositório, o foco é a criação de uma nota fiscal para um mercadinho, mostrando como essas funcionalidades podem ser combinadas em um contexto prático.
- Java 8 ou superior: Certifique-se de ter o Java Development Kit (JDK) instalado na sua máquina.
- Maven: O projeto utiliza Maven para gerenciamento de dependências e construção do projeto. Verifique se o Maven está instalado e configurado corretamente.
-
Clone o Repositório:
Clone este repositório na sua máquina local usando o comando:
git clone https://github.com/seu-usuario/seu-repositorio.git
-
Navegue até o Diretório do Projeto:
Acesse a pasta do projeto:
cd gerar-pdf-itext -
Compile o Projeto e Gere o JAR::
Use o Maven para compilar o projeto e gerar o arquivo .jar executável:
mvn compile mvn clean package
O comando mvn clean package é usado no Maven para realizar uma série de tarefas necessárias para compilar e empacotar o projeto em um arquivo .jar. Vamos entender o que cada parte desse comando faz:
-
mvn clean: Esta parte do comando é responsável por limpar o projeto, o que significa que o Maven remove todos os arquivos gerados em builds anteriores, como os arquivos compilados e o próprio.jar. Isso garante que você esteja trabalhando com um ambiente de compilação limpo, evitando conflitos e problemas decorrentes de arquivos antigos ou corrompidos. -
mvn package: Após limpar o projeto, o Maven compila o código-fonte e empacota o projeto em um arquivo.jar. Este processo inclui:- Compilação do código: Todos os arquivos
.javasão compilados em arquivos.class. - Empacotamento: Os arquivos
.class, recursos, e bibliotecas dependentes são empacotados em um único arquivo.jar, pronto para ser executado.
- Compilação do código: Todos os arquivos
O uso do comando mvn clean package é uma prática recomendada para garantir que a compilação do projeto seja feita de maneira correta e consistente, sem resíduos de builds anteriores que possam interferir no resultado final.
A classe Document representa o documento PDF em si. Ela é o ponto central onde todas as operações relacionadas ao conteúdo do PDF são realizadas. Um Document deve ser aberto antes que qualquer conteúdo possa ser adicionado, e deve ser fechado após todas as operações de escrita.
- Principais Métodos:
open(): Abre o documento para permitir a escrita.close(): Fecha o documento e finaliza o PDF.add(Element element): Adiciona um elemento (como um parágrafo, tabela, imagem, etc.) ao documento.
A classe PdfWriter é responsável por gravar o conteúdo do Document no arquivo PDF. Ela atua como um intermediário entre o Document e o arquivo de saída.
- Principais Métodos:
getInstance(Document document, OutputStream os): Cria uma instância dePdfWriterque escreve o conteúdo doDocumentno fluxo de saída especificado (por exemplo, um arquivo).
A classe FileOutputStream é usada para escrever dados em um arquivo no sistema de arquivos. No contexto de geração de PDFs, ela é utilizada para especificar o arquivo de destino onde o PDF será salvo.
- Principais Métodos:
FileOutputStream(String name): Constrói umFileOutputStreamque escreve em um arquivo com o nome especificado.
A classe Paragraph é usada para representar um parágrafo de texto no PDF. Você pode adicionar texto simples ou formatado, como negrito, itálico, e sublinhado, usando esta classe.
- Principais Métodos:
Paragraph(String text): Cria um novo parágrafo com o texto especificado.setAlignment(int alignment): Define o alinhamento do texto dentro do parágrafo (por exemplo, alinhado à esquerda, à direita, ou centralizado).
A classe PdfPTable é usada para criar tabelas no PDF. Ela permite adicionar células e definir o layout das tabelas, como o número de colunas e alinhamento.
- Principais Métodos:
PdfPTable(int numColumns): Cria uma nova tabela com o número especificado de colunas.addCell(PdfPCell cell): Adiciona uma célula à tabela.setWidths(float[] widths): Define as larguras das colunas da tabela.
A classe PdfPCell representa uma célula individual dentro de uma PdfPTable. Ela pode conter texto, imagens ou outros elementos, e você pode personalizar seu estilo, como bordas e alinhamento.
- Principais Métodos:
PdfPCell(Phrase phrase): Cria uma nova célula com o conteúdo especificado (geralmente uma instância dePhrase).setHorizontalAlignment(int alignment): Define o alinhamento horizontal do conteúdo da célula.
A classe Phrase é uma sequência de Chunks, que são os menores elementos de texto no iText. Phrase pode ser usada para adicionar texto formatado dentro de células de tabela ou parágrafos.
- Principais Métodos:
Phrase(String text): Cria uma nova frase com o texto especificado.add(Chunk chunk): Adiciona umChunkàPhrase.
A classe Image é usada para adicionar imagens ao documento PDF. Ela pode ser criada a partir de uma imagem existente no sistema de arquivos ou de uma URL.
- Principais Métodos:
getInstance(String filename): Cria uma instância deImagea partir de um arquivo de imagem.setAlignment(int alignment): Define o alinhamento da imagem no documento.scaleToFit(float width, float height): Redimensiona a imagem para caber dentro das dimensões especificadas.