iText - Chú thích đánh dấu

Trong chương này, chúng ta sẽ xem cách thêm chú thích đánh dấu văn bản vào tài liệu PDF bằng thư viện iText.

Tạo chú thích đánh dấu trong PDF

Bạn có thể tạo một Tài liệu PDF trống bằng cách khởi tạo Documentlớp học. Trong khi khởi tạo lớp này, bạn cần phải vượt quaPdfDocumentđối tượng như một tham số cho phương thức khởi tạo của nó. Để sử dụng chú thích văn bản trong tài liệu PDF, bạn cần tạo một đối tượngPdfTextAnnotation và thêm nó vào PdfPage.

Sau đây là các bước để sử dụng chú thích văn bản trong tài liệu PDF.

Bước 1: Tạo đối tượng PdfWriter

Các PdfWriterlớp đại diện cho DocWriter cho một tệp PDF. Lớp này thuộc về góicom.itextpdf.kernel.pdf. Hàm tạo của lớp này chấp nhận một chuỗi, đại diện cho đường dẫn của tệp nơi tệp PDF sẽ được tạo.

Khởi tạo lớp PdfWriter bằng cách chuyển một giá trị chuỗi (đại diện cho đường dẫn mà bạn cần tạo PDF) đến phương thức khởi tạo của nó, như được hiển thị bên dưới.

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

Khi một đối tượng thuộc loại này được chuyển đến PdfDocument (lớp), mọi phần tử được thêm vào tài liệu này sẽ được ghi vào tệp được chỉ định.

Bước 2: Tạo đối tượng PdfDocument

Các PdfDocumentlớp là lớp đại diện cho Tài liệu PDF trong iText. Lớp này thuộc về góicom.itextpdf.kernel.pdf. Để khởi tạo lớp này (ở chế độ viết), bạn cần chuyển một đối tượng của lớpPdfWriter với hàm tạo của nó.

Khởi tạo lớp PdfDocument bằng cách chuyển đối tượng PdfWriter tới phương thức khởi tạo của nó, như được hiển thị bên dưới.

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

Khi một đối tượng PdfDocument được tạo, bạn có thể thêm các phần tử khác nhau như trang, phông chữ, tệp đính kèm và trình xử lý sự kiện bằng cách sử dụng các phương pháp tương ứng do lớp của nó cung cấp.

Bước 3: Tạo đối tượng Tài liệu

Các Document lớp của gói com.itextpdf.layoutlà phần tử gốc trong khi tạo một tệp PDF tự túc. Một trong những hàm tạo của lớp này chấp nhận một đối tượng của lớpPdfDocument.

Khởi tạo Document lớp bằng cách truyền đối tượng của lớp PdfDocument được tạo ở các bước trước, như được hiển thị bên dưới.

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

Bước 4: Tạo đối tượng PdfAnnotation

Các PdfAnnotation lớp của gói com.itextpdf.kernel.pdf.annot đại diện cho lớp cha của tất cả các chú thích.

Trong số các lớp dẫn xuất của nó, PdfTextMarkupAnnotationlớp đại diện cho chú thích đánh dấu văn bản. Tạo một đối tượng của lớp này như hình dưới đây.

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

Bước 5: Đặt màu cho chú thích

Đặt màu cho chú thích bằng cách sử dụng setColor() phương pháp của PdfAnnotationlớp học. Đối với phương pháp này, chuyển đối tượng màu đại diện chocolor của chú thích dưới dạng tham số.

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

Bước 6: Đặt tiêu đề và nội dung của chú thích

Đặt tiêu đề và nội dung của chú thích bằng cách sử dụng setTitle()setContents() phương pháp của PdfAnnotation lớp tương ứng.

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

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

Bước 7: Thêm chú thích vào trang

Tạo một cái mới PdfPage lớp học sử dụng addNewPage() phương pháp của PdfDocument và thêm chú thích đã tạo ở trên bằng cách sử dụng addAnnotation() phương thức của lớp PdfPage, như hình dưới đây.

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

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

Bước 8: Đóng tài liệu

Đóng tài liệu bằng cách sử dụng close() phương pháp của Document lớp, như hình dưới đây.

// Closing the document 
document.close();

Thí dụ

Chương trình Java sau đây trình bày cách thêm chú thích đánh dấu văn bản vào tài liệu PDF bằng thư viện iText. Nó tạo ra một tài liệu PDF với tênmarkupAnnotation.pdf, thêm chú thích đánh dấu văn bản vào nó và lưu nó trong đường dẫn C:/itextExamples/

Lưu mã này trong một tệp có tên 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");       
   }     
}

Biên dịch và thực thi tệp Java đã lưu từ Dấu nhắc lệnh bằng các lệnh sau:

javac MarkupAnnotation.java 
java MarkupAnnotation

Khi thực thi, chương trình trên sẽ tạo một tài liệu PDF hiển thị thông báo sau.

Annotation added successfully

Nếu bạn xác minh đường dẫn được chỉ định, bạn có thể tìm thấy tài liệu PDF đã tạo như hình bên dưới.