iText - Anotação de Texto
Neste capítulo, veremos como adicionar anotações de texto a um documento PDF usando a biblioteca iText.
Criação de uma anotação de texto em um PDF
Você pode criar um documento PDF vazio instanciando o Documentclasse. Ao instanciar esta classe, você precisa passar por umPdfDocument objeto como um parâmetro para seu construtor.
Para usar anotações de texto em seu documento PDF, você precisa criar um objeto de PdfTextAnnotation classe e adicione isso ao PdfPage.
A seguir estão as etapas para usar anotações de texto no documento PDF.
Etapa 1: Criação de um objeto PdfWriter
o PdfWriterclasse representa o DocWriter para um PDF. Esta classe pertence ao pacotecom.itextpdf.kernel.pdf. O construtor desta classe aceita uma string, representando o caminho do arquivo onde o PDF será criado.
Instancie a classe PdfWriter passando um valor de string (representando o caminho onde você precisa criar um PDF) para seu construtor, conforme mostrado abaixo.
// Creating a PdfWriter
String dest = "C:/itextExamples/textAnnotation.pdf";
PdfWriter writer = new PdfWriter(dest);
Quando um objeto desse tipo é passado para um PdfDocument (classe), cada elemento adicionado a este documento será gravado no arquivo especificado.
Etapa 2: Criação de um objeto PdfDocument
o PdfDocumentclass é a classe que representa o documento PDF no iText. Esta classe pertence ao pacotecom.itextpdf.kernel.pdf. Para instanciar esta classe (no modo de escrita), você precisa passar um objeto da classePdfWriter para seu construtor.
Instancie o PdfDocument classe passando no PdfWriter objeto ao seu construtor, como mostrado abaixo.
// Creating a PdfDocument
PdfDocument pdfDoc = new PdfDocument(writer);
Depois que um objeto PdfDocument é criado, você pode adicionar vários elementos como página, fonte, anexo de arquivo e manipulador de eventos usando os respectivos métodos fornecidos por sua classe.
Etapa 3: Criação do objeto Documento
o Document classe do pacote com.itextpdf.layouté o elemento raiz ao criar um PDF autossuficiente. Um dos construtores desta classe aceita um objeto da classePdfDocument.
Instancie o Document classe passando o objeto da classe PdfDocument criado nas etapas anteriores, conforme mostrado abaixo.
// Creating a Document
Document document = new Document(pdfDoc);
Etapa 4: Criação do objeto PdfAnnotation
o PdfAnnotation classe do pacote com.itextpdf.kernel.pdf.annot representa a superclasse de todas as anotações.
Entre suas classes derivadas, PdfTextAnnotationclasse representa a anotação de texto. Crie um objeto desta classe conforme mostrado abaixo.
// Creating PdfAnnotation
Rectangle rect = new Rectangle(20, 800, 0, 0);
PdfAnnotation ann = new PdfTextAnnotation(rect);
Etapa 5: definir a cor da anotação
Defina a cor da anotação usando o setColor() método do PdfAnnotationclasse. Para este método, passe ocolor objeto que representa a cor da anotação como um parâmetro.
// Setting color to the annotation
ann.setColor(Color.GREEN);
Etapa 6: definir o título e o conteúdo da anotação
Defina o título e o conteúdo da anotação usando o setTitle() e setContents() métodos do PdfAnnotation classe respectivamente, conforme mostrado abaixo.
// Setting title to the annotation
ann.setTitle(new PdfString("Hello"));
// Setting contents of the annotation
ann.setContents("Hi welcome to Tutorialspoint.");
Etapa 7: Adicionar a anotação a uma página
Crie um novo PdfPage classe usando o addNewPage() método da classe PdfDocument e adicione a anotação acima usando o addAnnotation() método de PdfPage classe, conforme mostrado abaixo.
// Creating a new page PdfPage page =
pdf.addNewPage();
// Adding annotation to a page in a PDF
page.addAnnotation(ann);
Etapa 8: Fechando o Documento
Feche o documento usando o close() método do Document classe, conforme mostrado abaixo.
// Closing the document
document.close();
Exemplo
O programa Java a seguir demonstra como adicionar anotações de texto a um documento PDF usando a biblioteca iText. Ele cria um documento PDF com o nometextAnnotation.pdf, adiciona uma anotação de texto a ela e a salva no caminho C:/itextExamples/
Salve este código em um arquivo com o nome TextAnnotation.java.
import com.itextpdf.kernel.color.Color;
import com.itextpdf.kernel.geom.Rectangle;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfPage;
import com.itextpdf.kernel.pdf.PdfString;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.kernel.pdf.annot.PdfAnnotation;
import com.itextpdf.kernel.pdf.annot.PdfTextAnnotation;
import com.itextpdf.layout.Document;
public class TextAnnotation {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter
String dest = "C:/itextExamples/textAnnotation.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfDocument
PdfDocument pdf = new PdfDocument(writer);
// Creating a Document
Document document = new Document(pdf);
// Creating PdfTextAnnotation object
Rectangle rect = new Rectangle(20, 800, 0, 0);
PdfAnnotation ann = new PdfTextAnnotation(rect);
// Setting color to the annotation
ann.setColor(Color.GREEN);
// Setting title to the annotation
ann.setTitle(new PdfString("Hello"));
// Setting contents of the annotation
ann.setContents("Hi welcome to Tutorialspoint.");
// Creating a new page
PdfPage page = pdf.addNewPage();
// Adding annotation to a page in a PDF
page.addAnnotation(ann);
// Closing the document
document.close();
System.out.println("Annotation added successfully");
}
}
Compile e execute o arquivo Java salvo no prompt de comando usando os comandos a seguir.
javac TextAnnotation.java
java TextAnnotation
Após a execução, o programa acima cria um documento PDF exibindo a seguinte mensagem.
Annotation added successfully
Se você verificar o caminho especificado, poderá encontrar o documento PDF criado, conforme mostrado abaixo.