iText - การวาดส่วนโค้ง
ในบทนี้เราจะดูวิธีการวาดส่วนโค้งบนเอกสาร PDF โดยใช้ไลบรารี iText
การวาดส่วนโค้งบน PDF
คุณสามารถสร้างเอกสาร PDF เปล่าโดยการสร้างไฟล์ Documentชั้นเรียน. ในขณะที่สร้างอินสแตนซ์คลาสนี้คุณต้องผ่านไฟล์PdfDocument วัตถุเป็นพารามิเตอร์ของตัวสร้าง
ในการวาดส่วนโค้งบน PdfDocument ให้สร้างอินสแตนซ์ไฟล์ PdfCanvas คลาสของแพ็คเกจ com.itextpdf.kernel.pdf.canvas และสร้างส่วนโค้งโดยใช้ arc() วิธีการของคลาสนี้
ต่อไปนี้เป็นขั้นตอนในการวาดส่วนโค้งบนเอกสาร PDF
ขั้นตอนที่ 1: การสร้างวัตถุ PdfWriter
PdfWriterคลาสแทน DocWriter สำหรับ PDF คลาสนี้เป็นของแพ็คเกจcom.itextpdf.kernel.pdf. คอนสตรัคเตอร์ของคลาสนี้ยอมรับสตริงซึ่งแสดงถึงพา ธ ของไฟล์ที่จะสร้าง PDF
สร้างอินสแตนซ์คลาส PdfWriter โดยส่งค่าสตริง (แสดงถึงเส้นทางที่คุณต้องการสร้าง PDF) ไปยังตัวสร้างดังที่แสดงด้านล่าง
// Creating a PdfWriter
String dest = "C:/itextExamples/drawingArc.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: วาดส่วนโค้ง
วาดส่วนโค้งโดยใช้ arc() วิธีการของ Canvas ชั้นเรียนและเติมโดยใช้ fill() วิธีการดังที่แสดงด้านล่าง
// Drawing an arc
canvas.arc(50, 50, 300, 545, 0, 360);
// Filling the arc
canvas.fill();
ขั้นตอนที่ 6: การปิดเอกสาร
ปิดเอกสารโดยใช้ close() วิธีการของ Document ชั้นเรียนดังที่แสดงด้านล่าง
// Closing the document
document.close();
ตัวอย่าง
โปรแกรม Java ต่อไปนี้สาธิตวิธีการวาดส่วนโค้งในเอกสาร PDF โดยใช้ไลบรารี iText
สร้างเอกสาร PDF ที่มีชื่อ drawingArc.pdfวาดส่วนโค้งเข้าไปและบันทึกไว้ในเส้นทาง C:/itextExamples/
บันทึกรหัสนี้ในไฟล์ที่มีชื่อ DrawingArc.java.
import com.itextpdf.kernel.color.Color;
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 DrawingArc {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter
String dest = "C:/itextExamples/drawingArc.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);
// Drawing an arc
canvas.arc(50, 50, 300, 545, 0, 360);
// Filling the arc
canvas.fill();
// Closing the document
doc.close();
System.out.println("Object drawn on pdf successfully");
}
}
คอมไพล์และเรียกใช้ไฟล์ Java ที่บันทึกไว้จากพรอมต์คำสั่งโดยใช้คำสั่งต่อไปนี้ -
javac DrawingArc.java
java DrawingArc
เมื่อดำเนินการโปรแกรมข้างต้นจะสร้างเอกสาร PDF โดยแสดงข้อความต่อไปนี้
Object drawn on pdf successfully
หากคุณตรวจสอบเส้นทางที่ระบุคุณจะพบเอกสาร PDF ที่สร้างขึ้นดังที่แสดงด้านล่าง