iText - разметка аннотации

В этой главе мы увидим, как добавить аннотацию текстовой разметки в документ PDF с помощью библиотеки iText.

Создание аннотации разметки в PDF

Вы можете создать пустой PDF-документ, создав экземпляр Documentкласс. При создании экземпляра этого класса вам необходимо передатьPdfDocumentобъект в качестве параметра его конструктора. Чтобы использовать текстовую аннотацию в вашем PDF-документе, вам необходимо создать объектPdfTextAnnotation class и добавьте его в PdfPage.

Ниже приведены шаги по использованию текстовых аннотаций в документе PDF.

Шаг 1. Создание объекта PdfWriter

В PdfWriterКласс представляет DocWriter для PDF. Этот класс принадлежит пакетуcom.itextpdf.kernel.pdf. Конструктор этого класса принимает строку, представляющую путь к файлу, в котором должен быть создан PDF.

Создайте экземпляр класса PdfWriter, передав строковое значение (представляющее путь, по которому вам нужно создать PDF-файл) в его конструктор, как показано ниже.

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

Когда объект этого типа передается в PdfDocument (класс), каждый элемент, добавленный в этот документ, будет записан в указанный файл.

Шаг 2: Создание объекта PdfDocument

В PdfDocumentclass - это класс, представляющий PDF-документ в iText. Этот класс принадлежит пакетуcom.itextpdf.kernel.pdf. Чтобы создать экземпляр этого класса (в режиме записи), вам необходимо передать объект классаPdfWriter своему конструктору.

Создайте экземпляр класса PdfDocument, передав объект PdfWriter его конструктору, как показано ниже.

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

После создания объекта PdfDocument вы можете добавлять различные элементы, такие как страница, шрифт, вложение файла и обработчик событий, используя соответствующие методы, предоставляемые его классом.

Шаг 3: Создание объекта документа

В Document класс пакета com.itextpdf.layoutявляется корневым элементом при создании самодостаточного PDF. Один из конструкторов этого класса принимает объект классаPdfDocument.

Создайте экземпляр Document class, передав объект класса PdfDocument созданный на предыдущих шагах, как показано ниже.

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

Шаг 4: Создание объекта PdfAnnotation

В PdfAnnotation класс пакета com.itextpdf.kernel.pdf.annot представляет собой суперкласс всех аннотаций.

Среди его производных классов PdfTextMarkupAnnotationКласс представляет аннотацию текстовой разметки. Создайте объект этого класса, как показано ниже.

// 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);

Шаг 5: Установка цвета аннотации

Установите цвет аннотации, используя setColor() метод PdfAnnotationкласс. В этот метод передайте объект цвета, представляющийcolor аннотации в качестве параметра.

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

Шаг 6: Установка заголовка и содержания аннотации

Задайте заголовок и содержание аннотации, используя setTitle() и setContents() методы PdfAnnotation класс соответственно.

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

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

Шаг 7. Добавление аннотации на страницу

Создать новый PdfPage класс с использованием addNewPage() метод PdfDocument class и добавьте созданную выше аннотацию, используя addAnnotation() метод класса PdfPage, как показано ниже.

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

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

Шаг 8: закрытие документа

Закройте документ, используя close() метод Document класс, как показано ниже.

// Closing the document 
document.close();

пример

Следующая программа на Java демонстрирует, как добавить аннотацию текстовой разметки в PDF-документ с помощью библиотеки iText. Создает PDF-документ с именемmarkupAnnotation.pdf, добавляет к нему аннотацию текстовой разметки и сохраняет ее в пути C:/itextExamples/

Сохраните этот код в файле с именем 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");       
   }     
}

Скомпилируйте и выполните сохраненный файл Java из командной строки, используя следующие команды:

javac MarkupAnnotation.java 
java MarkupAnnotation

После выполнения вышеуказанная программа создает PDF-документ, в котором отображается следующее сообщение.

Annotation added successfully

Если вы проверите указанный путь, вы сможете найти созданный документ PDF, как показано ниже.