iText - linha de anotação

Neste capítulo, veremos como adicionar anotação de linha a um documento PDF usando a biblioteca iText.

Criação de uma anotação de linha em um PDF

Você pode criar um documento PDF vazio instanciando o Documentclasse. Ao instanciar esta classe, você precisa passar por umPdfDocument objeto como 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 que representa o caminho onde você precisa criar um PDF, para seu construtor, conforme mostrado abaixo.

// Creating a PdfWriter 
String dest = "C:/itextExamples/lineAnnotation.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 PDFDocument 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 a classe PdfDocument passando o objeto PdfWriter para seu construtor, conforme mostrado abaixo.

// Creating a PdfDocument  
PdfDocument pdfDoc = new PdfDocument(writer);

Uma vez que um objeto PdfDocument é criado, você pode adicionar vários elementos como página, fonte, anexo de arquivo, 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 a classe Document 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, PdfLineAnnotationclasse representa a anotação de linha. Crie um objeto desta classe conforme mostrado abaixo.

// Creating PdfAnnotation 
Rectangle rect = new Rectangle(20, 800, 0, 0); 
PdfAnnotation annotation = new PdfLineAnnotation(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 como parâmetro o objeto de cor que representa a cor da anotação.

// Setting color to the annotation 
annotation.setColor(Color.BLUE);

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 PdfLineAnnotation 
annotation.setTitle(new PdfString("iText"));        

// Setting contents of the PdfLineAnnotation 
annotation.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 do PdfDocument e adicione a anotação criada acima usando o método addAnnotation () da classe PdfPage, conforme mostrado abaixo.

// Creating a new page 
PdfPage page = pdf.addNewPage();

// Adding annotation to a page in a PDF 
page.addAnnotation(annotation);

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 linha a um documento PDF usando a biblioteca iText. Ele cria um documento PDF com o nomelineAnnotation.pdf, adiciona uma anotação de linha e salva no caminho C:/itextExamples/.

Salve este código em um arquivo com o nome LineAnnotation.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.PdfLineAnnotation; 
import com.itextpdf.layout.Document;  

public class LineAnnotation {
   public static void main(String args[]) throws Exception {             
      // Creating a PdfWriter       
      String dest = "C:/itextExamples/lineAnnotations.pdf";       
      PdfWriter writer = new PdfWriter(dest);               

      // Creating a PdfDocument       
      PdfDocument pdf = new PdfDocument(writer);               

      // Creating a Document        
      Document document = new Document(pdf);              
      
      // Creating a PdfPage       
      PdfPage page = pdf.addNewPage();              

      // creating PdfLineAnnotation object       
      Rectangle rect = new Rectangle(0, 0);
      float[] floatArray  = new float[]{
         20, 790, page.getPageSize().getWidth() - 20, 790
      };
      PdfAnnotation annotation = new PdfLineAnnotation(rect, floatArray);              
      
      // Setting color of the PdfLineAnnotation       
      annotation.setColor(Color.BLUE);              
      
      // Setting title to the PdfLineAnnotation       
      annotation.setTitle(new PdfString("iText"));              
      
      // Setting contents of the PdfLineAnnotation       
      annotation.setContents("Hi welcome to Tutorialspoint");              
      
      // Adding annotation to the page       
      page.addAnnotation(annotation);               
      
      // Closing the document       
      document.close();              
      
      System.out.println("Annotation added successfully");   
   } 
}

Compile e execute o arquivo Java salvo a partir do prompt de comando usando os seguintes comandos -

javac LineAnnotation.java 
java LineAnnotation

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.