iText - คำอธิบายประกอบมาร์กอัป

ในบทนี้เราจะดูวิธีการเพิ่มคำอธิบายประกอบมาร์กอัปข้อความลงในเอกสาร PDF โดยใช้ไลบรารี iText

การสร้างคำอธิบายประกอบมาร์กอัปใน PDF

คุณสามารถสร้างเอกสาร PDF เปล่าโดยการสร้างไฟล์ Documentชั้นเรียน ในขณะที่สร้างอินสแตนซ์คลาสนี้คุณต้องผ่านไฟล์PdfDocumentวัตถุเป็นพารามิเตอร์ของตัวสร้าง ในการใช้คำอธิบายประกอบข้อความในเอกสาร PDF ของคุณคุณต้องสร้างวัตถุของไฟล์PdfTextAnnotation และเพิ่มสิ่งนี้ลงในไฟล์ 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

PdfDocumentคลาสคือคลาสที่แสดงถึงเอกสาร 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 คลาสโดยส่งผ่านวัตถุของคลาส 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 คลาสและเพิ่มคำอธิบายประกอบที่สร้างขึ้นด้านบนโดยใช้ 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 ที่สร้างขึ้นดังที่แสดงด้านล่าง