iText - การวาดเส้น

ในบทนี้เราจะดูวิธีการลากเส้นบนเอกสาร PDF โดยใช้ไลบรารี iText

วาดเส้นบน PDF

คุณสามารถสร้างเอกสาร PDF เปล่าโดยการสร้างไฟล์ Documentชั้นเรียน ในขณะที่สร้างอินสแตนซ์คลาสนี้คุณต้องผ่านไฟล์PdfDocument วัตถุเป็นพารามิเตอร์ไปยังตัวสร้าง

ในการลากเส้นบน PdfDocument ให้สร้างไฟล์ PdfCanvas คลาสของแพ็คเกจ com.itextpdf.kernel.pdf.canvas และสร้างบรรทัดโดยใช้ไฟล์ moveTo() และ lineTO() วิธีการของคลาสนี้

ต่อไปนี้เป็นขั้นตอนในการลากเส้นบนเอกสาร pdf

ขั้นตอนที่ 1: การสร้างวัตถุ PdfWriter

PdfWriterคลาสแทน DocWriter สำหรับ PDF คลาสนี้เป็นของแพ็คเกจcom.itextpdf.kernel.pdf. คอนสตรัคเตอร์ของคลาสนี้ยอมรับสตริงซึ่งแสดงถึงพา ธ ของไฟล์ที่จะสร้าง PDF

สร้างอินสแตนซ์คลาส PdfWriter โดยส่งค่าสตริง (แสดงถึงเส้นทางที่คุณต้องการสร้าง PDF) ไปยังตัวสร้างดังที่แสดงด้านล่าง

// Creating a PdfWriter 
String dest = "C:/itextExamples/drawingLine.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: การสร้างวัตถุ PdfCanvas

สร้างไฟล์ PdfPage คลาสโดยใช้ addNewPage() วิธีการของ PdfDocument ชั้นเรียน

เริ่มต้นไฟล์ PdfCanvas วัตถุของแพ็คเกจ com.itextpdf.kernel.pdf.canvas โดยผ่านสิ่งที่สร้างไว้ข้างต้น PdfPage วัตถุตัวสร้างของคลาสนี้ดังที่แสดงด้านล่าง

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

// Creating a PdfCanvas object 
PdfCanvas canvas = new PdfCanvas(pdfPage);

ขั้นตอนที่ 5: วาดเส้น

กำหนดจุดเริ่มต้นของเส้นโดยใช้ moveTO() วิธีการของ Canvas ชั้นเรียนดังที่แสดงด้านล่าง

// Initial point of the line 
canvas.moveTo(100, 300);

ตอนนี้ลากเส้นจากจุดนี้ไปยังอีกจุดหนึ่งโดยใช้ lineTo() วิธีการดังที่แสดงด้านล่าง

// Drawing the line 
canvas.lineTo(500, 300);

ขั้นตอนที่ 6: การปิดเอกสาร

ปิดเอกสารโดยใช้ close() วิธีการของ Document ชั้นเรียนดังที่แสดงด้านล่าง

// Closing the document 
document.close();

ตัวอย่าง

โปรแกรม Java ต่อไปนี้สาธิตวิธีการลากเส้นในเอกสาร PDF โดยใช้ไลบรารี iText สร้างเอกสาร PDF ที่มีชื่อdrawingLine.pdfวาดส่วนโค้งเข้าไปและบันทึกไว้ในเส้นทาง C:/itextExamples/

บันทึกรหัสนี้ในไฟล์ที่มีชื่อ DrawingLine.java.

import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfPage; 
import com.itextpdf.kernel.pdf.PdfWriter; 
import com.itextpdf.kernel.pdf.canvas.PdfCanvas; 
import com.itextpdf.layout.Document;  

public class DrawingLine {     
   public static void main(String args[]) throws Exception {            
      // Creating a PdfWriter       
      String dest = "C:/itextExamples/drawingLine.pdf";             
      PdfWriter writer = new PdfWriter(dest);           
      
      // Creating a PdfDocument object       
      PdfDocument pdfDoc = new PdfDocument(writer);                   
      
      // Creating a Document object       
      Document doc = new Document(pdfDoc);                
      
      // Creating a new page       
      PdfPage pdfPage = pdfDoc.addNewPage();               
      
      // Creating a PdfCanvas object       
      PdfCanvas canvas = new PdfCanvas(pdfPage);              
      
      // Initial point of the line       
      canvas.moveTo(100, 300);              
      
      // Drawing the line       
      canvas.lineTo(500, 300);           
      
      // Closing the path stroke       
      canvas.closePathStroke();              
      
      // Closing the document       
      doc.close();  
      
      System.out.println("Object drawn on pdf successfully");             
   }     
}

คอมไพล์และเรียกใช้ไฟล์ Java ที่บันทึกไว้จากพรอมต์คำสั่งโดยใช้คำสั่งต่อไปนี้ -

javac DrawingLine.java 
java DrawingLine

เมื่อดำเนินการโปรแกรมข้างต้นจะสร้างเอกสาร PDF โดยแสดงข้อความต่อไปนี้

Object drawn on pdf successfully

หากคุณตรวจสอบเส้นทางที่ระบุคุณจะพบเอกสาร PDF ที่สร้างขึ้นดังที่แสดงด้านล่าง