iText - adnotacja znaczników

W tym rozdziale zobaczymy, jak dodać adnotację tekstową do dokumentu PDF za pomocą biblioteki iText.

Tworzenie adnotacji ze znacznikami w pliku PDF

Możesz utworzyć pusty dokument PDF, tworząc wystąpienie Documentklasa. Podczas tworzenia wystąpienia tej klasy musisz przekazać plikPdfDocumentobiekt jako parametr jego konstruktora. Aby użyć adnotacji tekstowej w dokumencie PDF, musisz utworzyć obiektPdfTextAnnotation class i dodaj to do PdfPage.

Poniżej przedstawiono kroki, aby użyć adnotacji tekstowych w dokumencie PDF.

Krok 1: Tworzenie obiektu PdfWriter

Plik PdfWriterreprezentuje DocWriter dla pliku PDF. Ta klasa należy do pakietucom.itextpdf.kernel.pdf. Konstruktor tej klasy akceptuje ciąg znaków reprezentujący ścieżkę do pliku, w którym ma zostać utworzony plik PDF.

Utwórz wystąpienie klasy PdfWriter, przekazując wartość ciągu (reprezentującą ścieżkę, w której należy utworzyć plik PDF) do jej konstruktora, jak pokazano poniżej.

// Creating a PdfWriter 
String dest = "C:/itextExamples/markupAnnotation.pdf"; 
PdfWriter writer = new PdfWriter(dest);

Gdy obiekt tego typu jest przekazywany do PdfDocument (klasy), każdy element dodany do tego dokumentu zostanie zapisany w określonym pliku.

Krok 2: Tworzenie obiektu PdfDocument

Plik PdfDocumentclass to klasa reprezentująca dokument PDF w iText. Ta klasa należy do pakietucom.itextpdf.kernel.pdf. Aby utworzyć instancję tej klasy (w trybie pisania), musisz przekazać obiekt tej klasyPdfWriter do swojego konstruktora.

Utwórz wystąpienie klasy PdfDocument, przekazując obiekt PdfWriter do jego konstruktora, jak pokazano poniżej.

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

Po utworzeniu obiektu PdfDocument można dodać różne elementy, takie jak strona, czcionka, załącznik do pliku i moduł obsługi zdarzeń, używając odpowiednich metod udostępnionych przez jego klasę.

Krok 3: Tworzenie obiektu dokumentu

Plik Document klasa pakietu com.itextpdf.layoutjest elementem głównym podczas tworzenia samowystarczalnego pliku PDF. Jeden z konstruktorów tej klasy akceptuje obiekt tej klasyPdfDocument.

Utwórz wystąpienie Document class poprzez przekazanie obiektu klasy PdfDocument utworzone w poprzednich krokach, jak pokazano poniżej.

// Creating a Document   
Document document = new Document(pdfDoc);

Krok 4: Tworzenie obiektu PdfAnnotation

Plik PdfAnnotation klasa pakietu com.itextpdf.kernel.pdf.annot reprezentuje nadklasę wszystkich adnotacji.

Wśród jego klas pochodnych PdfTextMarkupAnnotationklasa reprezentuje adnotację tekstową. Utwórz obiekt tej klasy, jak pokazano poniżej.

// Creating a PdfTextMarkupAnnotation object 
Rectangle rect = new Rectangle(105, 790, 64, 10); 
float[] floatArray = new float[]{169, 790, 105, 790, 169, 800, 105, 800};
PdfAnnotation annotation = PdfTextMarkupAnnotation.createHighLight(rect,floatArray);

Krok 5: Ustawianie koloru adnotacji

Ustaw kolor adnotacji za pomocą setColor() metoda PdfAnnotationklasa. Do tej metody przekaż obiekt color reprezentujący plikcolor adnotacji jako parametru.

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

Krok 6: Ustawianie tytułu i treści adnotacji

Ustaw tytuł i zawartość adnotacji za pomocą setTitle() i setContents() metody PdfAnnotation klasa odpowiednio.

// Setting title to the annotation 
annotation.setTitle(new PdfString("Hello!"));        

// Setting contents to the annotation 
annotation.setContents(new PdfString("Hi welcome to Tutorialspoint"));

Krok 7: Dodanie adnotacji do strony

Stwórz nowy PdfPage klasa przy użyciu addNewPage() metoda PdfDocument class i dodaj powyższą utworzoną adnotację za pomocą addAnnotation() metoda klasy PdfPage, jak pokazano poniżej.

// Creating a new Pdfpage 
PdfPage pdfPage = pdfDoc.addNewPage();        

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

Krok 8: Zamknięcie dokumentu

Zamknij dokument za pomocą close() metoda Document klasa, jak pokazano poniżej.

// Closing the document 
document.close();

Przykład

Poniższy program w języku Java przedstawia sposób dodawania adnotacji tekstowych do dokumentu PDF za pomocą biblioteki iText. Tworzy dokument PDF o nazwiemarkupAnnotation.pdf, dodaje do niego adnotację tekstową i zapisuje ją w ścieżce C:/itextExamples/

Zapisz ten kod w pliku o nazwie MarkupAnnotation.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.PdfTextMarkupAnnotation;
import com.itextpdf.layout.Document;  

public class MarkupAnnotation {    
   public static void main(String args[]) throws Exception {   
      // Creating a PdfDocument object       
      String file = "C:/itextExamples/markupAnnotation.pdf";        
      PdfDocument pdfDoc = new PdfDocument(new PdfWriter(file));                   
   
      // Creating a Document object       
      Document doc = new Document(pdfDoc);                      
      
      // Creating a PdfTextMarkupAnnotation object       
      Rectangle rect = new Rectangle(105, 790, 64, 10);       
      float[] floatArray = new float[]{169, 790, 105, 790, 169, 800, 105, 800};
      PdfAnnotation annotation = 
         PdfTextMarkupAnnotation.createHighLight(rect,floatArray);
      
      // Setting color to the annotation       
      annotation.setColor(Color.YELLOW);              
      
      // Setting title to the annotation       
      annotation.setTitle(new PdfString("Hello!"));
      
      // Setting contents to the annotation       
      annotation.setContents(new PdfString("Hi welcome to Tutorialspoint"));
      
      // Creating a new Pdfpage
      PdfPage pdfPage = pdfDoc.addNewPage();
      
      // Adding annotation to a page in a PDF       
      pdfPage.addAnnotation(annotation);
      
      // Closing the document
      doc.close();  
      
      System.out.println("Annotation added successfully");       
   }     
}

Skompiluj i uruchom zapisany plik Java z wiersza polecenia, używając następujących poleceń -

javac MarkupAnnotation.java 
java MarkupAnnotation

Po uruchomieniu powyższy program tworzy dokument PDF z następującym komunikatem.

Annotation added successfully

Jeśli zweryfikujesz określoną ścieżkę, możesz znaleźć utworzony dokument PDF, jak pokazano poniżej.