iText - anotação de link

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

Criação de uma anotação de link 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 da classe PdfTextAnnotation e adicioná-lo à PdfPage.

A seguir estão as etapas para usar anotações de texto em um 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 o 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/linkAnnotation.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 a classe PdfDocument passando o PdfWriter objeto ao seu construtor, conforme 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 criada nas etapas anteriores, conforme mostrado a seguir.

// 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, PdfLinkAnnotationclasse representa a anotação do link. Crie um objeto desta classe, conforme mostrado abaixo.

// Creating a PdfLinkAnnotation object 
Rectangle rect = new Rectangle(0, 0); 
PdfLinkAnnotation annotation = new PdfLinkAnnotation(rect);

Etapa 5: definir a ação da anotação

Defina a ação para a anotação usando o setAction() método do PdfLinkAnnotation classe, conforme mostrado abaixo.

// Setting action of the annotation 
PdfAction action = PdfAction.createURI("http: // www.tutorialspoint.com/"); 
annotation.setAction(action);

Etapa 6: Criação de um link

Crie um link instanciando o Link classe do pacote com.itextpdf.layout.element, como mostrado abaixo.

// Creating a link 
Link link = new Link("Click here", annotation);

Etapa 7: Adicionar a anotação do link a um parágrafo

Crie um novo parágrafo instanciando o Paragraph classe e adicione o link criado na etapa anterior usando o add() método desta classe, conforme mostrado abaixo.

// Creating a paragraph 
Paragraph paragraph = new Paragraph("Hi welcome to Tutorialspoint ");        

// Adding link to paragraph 
paragraph.add(link.setUnderline());

Etapa 8: Adicionando parágrafo ao documento

Adicione o parágrafo ao documento usando o add() método do Document classe, conforme mostrado abaixo.

// Adding paragraph to document 
document.add(paragraph);

Etapa 9: 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ção de link a um documento PDF usando a biblioteca iText.

Ele cria um documento PDF com o nome linkAnnotation.pdf, adiciona uma anotação de link a ele e salva no caminho C:/itextExamples/

Salve este código em um arquivo com o nome LinkAnnotation.java.

import com.itextpdf.kernel.geom.Rectangle; 
import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfWriter; 
import com.itextpdf.kernel.pdf.action.PdfAction; 
import com.itextpdf.kernel.pdf.annot.PdfLinkAnnotation; 

import com.itextpdf.layout.Document; 
import com.itextpdf.layout.element.Link; 
import com.itextpdf.layout.element.Paragraph;  

public class LinkAnnotation {      
   public static void main(String args[]) throws Exception {             
      // Creating a PdfWriter       
      String dest = "C:/itextExamples/linkAnnotation.pdf";       
      
      PdfWriter writer = new 
      PdfWriter(dest);               
      
      // Creating a PdfDocument       
      PdfDocument pdf = new PdfDocument(writer);               
      
      // Creating a Document
      Document document = new Document(pdf);              
      
      // Creating a PdfLinkAnnotation object       
      Rectangle rect = new Rectangle(0, 0);       
      PdfLinkAnnotation annotation = new PdfLinkAnnotation(rect);              
      
      // Setting action of the annotation       
      PdfAction action = PdfAction.createURI("http:// www.tutorialspoint.com/");       
      annotation.setAction(action);             
      
      // Creating a link       
      Link link = new Link("Click here", annotation);              
      
      // Creating a paragraph       
      Paragraph paragraph = new Paragraph("Hi welcome to Tutorialspoint ");              
      
      // Adding link to paragraph       
      paragraph.add(link.setUnderline());              
      
      // Adding paragraph to document       
      document.add(paragraph);             

      // Closing the document       
      document.close();              
      
      System.out.println("Annotation added successfully");    
   } 
}

Compile e execute o arquivo Java salvo no prompt de comando usando os seguintes comandos -

javac LinkAnnotation.java 
java LinkAnnotation

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.