การเพิ่มกราฟิกเวกเตอร์ลงในไฟล์ PDF เป็นความต้องการทั่วไปสำหรับการสร้างรายงาน ใบแจ้งหนี้ และเอกสารเชิงโต้ตอบ Conholdate.Total for Java เป็น SDK ที่มีประสิทธิภาพซึ่งทำให้การจัดการ PDF บนเซิร์ฟเวอร์เป็นเรื่องง่าย ในคู่มือนี้คุณจะได้เรียนรู้วิธีแทรกสี่เหลี่ยม, รูปวงรี และเส้นลงใน PDF, กำหนดลักษณะการแสดงผลของพวกมัน, และจัดการข้อพิจารณาด้านประสิทธิภาพ ทั้งหมดนี้พร้อมตัวอย่างโค้ด Java ที่ชัดเจน
ขั้นตอนการเพิ่มรูปร่างลงใน PDF ด้วย Java
- เพิ่ม Maven Repository และ Dependency - รวม Conholdate Maven repository และ dependency
conholdate-totalลงในไฟล์pom.xmlของคุณ ซึ่งทำให้คลาส SDK เช่นPdfDocumentและShapeFactoryพร้อมใช้งาน<repositories> <repository> <id>conholdate-repo</id> <name>Conholdate Maven Repository</name> <url>https://repository.conholdate.com/repo/</url> </repository> </repositories>
- โหลดเอกสาร PDF - สร้างอินสแตนซ์ของ
PdfDocumentและเปิดไฟล์ PDF เป้าหมาย คลาสนี้ได้รับการอธิบายไว้ใน API reference.
PdfDocument pdf = new PdfDocument();
pdf.open("input.pdf");
- Create Shape Objects - ใช้
ShapeFactoryเพื่อสร้างสี่เหลี่ยม, รูปวงรี หรือเส้น. ตั้งค่าตำแหน่ง, ขนาด, และคุณลักษณะการแสดงผล.
// Rectangle
Shape rect = ShapeFactory.createRectangle(100, 150, 200, 100);
rect.setFillColor(Color.BLUE);
rect.setStrokeColor(Color.BLACK);
rect.setLineWidth(2);
// Ellipse Shape ellipse = ShapeFactory.createEllipse(350, 150, 150, 100); ellipse.setFillColor(Color.GREEN); ellipse.setStrokeColor(Color.DARK_GRAY); ellipse.setLineWidth(1.5f);
// Line
Shape line = ShapeFactory.createLine(100, 300, 500, 300);
line.setStrokeColor(Color.RED);
line.setLineWidth(3);
เพิ่มรูปทรงลงในหน้า - ดึงหน้าที่ต้องการจากเอกสารและเพิ่มแต่ละรูปทรงลงในคอลเลกชันกราฟิกของมัน.
Page page = pdf.getPages().get_Item(0); // first page page.getGraphics().addShape(rect); page.getGraphics().addShape(ellipse); page.getGraphics().addShape(line);บันทึก PDF ที่อัปเดต - หลังจากเพิ่มรูปทรงทั้งหมดแล้ว ให้บันทึกเอกสารเป็นไฟล์ใหม่.
pdf.save("output.pdf"); pdf.close();
การเพิ่มรูปร่างลงใน PDF ด้วย Java - ตัวอย่างโค้ดเต็ม
ตัวอย่างต่อไปนี้รวมขั้นตอนทั้งหมดเข้าด้วยกันเป็นโปรแกรมเดียวที่พร้อมใช้งาน
import com.conholdate.total.pdf.*;
import com.conholdate.total.pdf.shapes.*;
import java.awt.Color;
public class AddShapesDemo { public static void main(String[] args) throws Exception { // Initialize PDF document PdfDocument pdf = new PdfDocument(); pdf.open(“input.pdf”);
// Create rectangle Shape rectangle = ShapeFactory.createRectangle(100, 150, 200, 100); rectangle.setFillColor(Color.BLUE); rectangle.setStrokeColor(Color.BLACK); rectangle.setLineWidth(2);
// สร้างวงรี Shape ellipse = ShapeFactory.createEllipse(350, 150, 150, 100); ellipse.setFillColor(Color.GREEN); ellipse.setStrokeColor(Color.DARK_GRAY); ellipse.setLineWidth(1.5f);
// สร้างเส้น Shape line = ShapeFactory.createLine(100, 300, 500, 300); line.setStrokeColor(Color.RED); line.setLineWidth(3);
// เพิ่มรูปทรงลงในหน้าที่หนึ่ง
Page page = pdf.getPages().get_Item(0);
page.getGraphics().addShape(rectangle);
page.getGraphics().addShape(ellipse);
page.getGraphics().addShape(line);
// บันทึกผลลัพธ์
pdf.save("output.pdf");
pdf.close();
}
}
หมายเหตุ: ตัวอย่างโค้ดนี้แสดงการทำงานหลักของฟังก์ชัน ก่อนนำไปใช้ในโครงการของคุณ ให้ตรวจสอบและอัปเดตเส้นทางไฟล์ (
input.pdf,output.pdf) ให้ตรงกับตำแหน่งไฟล์จริงของคุณ ตรวจสอบว่าขึ้นตอนการติดตั้ง dependencies ที่จำเป็นทั้งหมดเสร็จสมบูรณ์แล้ว และทำการทดสอบอย่างละเอียดในสภาพแวดล้อมการพัฒนา หากพบปัญหาใด ๆ โปรดดูที่ เอกสารอย่างเป็นทางการ หรือ ติดต่อทีม สนับสนุน เพื่อขอความช่วยเหลือ
การติดตั้งและตั้งค่าใน Java
เพื่อเริ่มใช้ Conholdate.Total for Java ให้ดาวน์โหลดรุ่นล่าสุดจากเว็บไซต์ทางการและเพิ่มการพึ่งพา Maven ที่แสดงไว้ก่อนหน้านี้ SDK ทำงานบน runtime ของ Java 8+ ใดก็ได้และไม่ต้องการไลบรารีเนทีฟเพิ่มเติม
- URL ดาวน์โหลด: Conholdate.Total for Java Release
- เอกสาร: คำแนะนำการใช้งานโดยละเอียดมีให้ใน เอกสารอย่างเป็นทางการ.
- ใบอนุญาต: รับใบอนุญาตชั่วคราวจาก หน้าการรับใบอนุญาตชั่วคราว หรือดูราคาครบถ้วนใน หน้าการกำหนดราคา.
คุณลักษณะหลักและภาพรวม
เพิ่มรูปร่างลงใน PDF ด้วย Java พร้อม Conholdate.Total
Conholdate.Total for Java ให้ API ที่เป็นเอกภาพสำหรับการสร้างและแก้ไขเนื้อหา PDF ฟังก์ชันการวาดรูปร่างทำงานกับกราฟิกเวกเตอร์ ทำให้ส่วนที่เพิ่มเข้ามายังคมชัดเจนที่ระดับการซูมใด ๆ คุณสามารถวาด primitive พื้นฐาน (rectangle, ellipse, line) รวมถึงเส้นทางที่ซับซ้อนได้
Conholdate.Total Features That Matter For This Task
- Cross‑platform compatibility: ทำงานบนเซิร์ฟเวอร์ Windows, Linux และ macOS.
- High‑performance rendering: รูปทรงถูกเรนเดอร์โดยใช้เอนจินเดียวกันที่สร้างเนื้อหา PDF แบบเนทีฟ, หลีกเลี่ยงการแรสเตอร์ไลเซชัน.
- Full control over appearance: ตั้งค่าสีเติม, สีเส้น, ความกว้างของเส้น, ความทึบแสง, และโหมด blend.
- Layered graphics: เพิ่มรูปทรงลงในเลเยอร์หรือกลุ่มเฉพาะเพื่อการจัดการในภายหลังที่ง่ายขึ้น.
กำหนดค่าคุณสมบัติของรูปทรงเพื่อการเรนเดอร์ที่เหมาะสม
เมื่อเพิ่มรูปทรง ให้พิจารณาคุณสมบัติดังต่อไปนี้เพื่อให้ได้ผลลัพธ์ภาพที่ต้องการ:
- ตำแหน่งและขนาด: ใช้พิกัดแบบสัมบูรณ์ (จุด) หรือเปอร์เซ็นต์สัมพันธ์กับขนาดหน้า.
- สี: SDK ยอมรับอ็อบเจกต์
java.awt.Color. สำหรับความโปร่งใส ให้ใช้new Color(r, g, b, alpha). - ความกว้างของเส้น: วัดเป็นจุด; ค่า
1เท่ากับ 1/72 นิ้ว. - ความทึบและโหมดผสม: ปรับด้วย
setOpacity(float)และsetBlendMode(BlendMode). - การหมุนและการเอียง: ใช้การแปลงผ่าน
setRotation(double)หรือsetSkew(double, double)สำหรับการจัดวางขั้นสูง.
ตัวอย่างการตั้งค่าคุณสมบัติขั้นสูง:
ellipse.setOpacity(0.7f);
ellipse.setBlendMode(BlendMode.MULTIPLY);
ellipse.setRotation(45);
พิจารณาด้านประสิทธิภาพเมื่อเพิ่มรูปร่างลงใน PDF
การเพิ่มวัตถุเวกเตอร์จำนวนมากอาจทำให้เวลาในการประมวลผลและการใช้หน่วยความจำเพิ่มขึ้น โปรดปฏิบัติตามแนวทางต่อไปนี้:
- การวาดเป็นชุด: จัดกลุ่มรูปร่างที่เกี่ยวข้องไว้ในคอนเทนเนอร์กราฟิกเดียวก่อนเพิ่มลงในหน้า.
- ใช้วัตถุซ้ำ: หากต้องการรูปร่างที่เหมือนกันในหลายหน้า ให้ทำสำเนารูปร่างที่มีอยู่แทนการสร้างอินสแตนซ์ใหม่.
- หลีกเลี่ยงการขยายเกินขนาด: กำหนดรูปร่างที่ขนาดการแสดงผลสุดท้ายเพื่อป้องกันการแปลงเป็นราสเตอร์ที่มีค่าใช้จ่ายสูง.
- ปล่อยทรัพยากร: ปิด
PdfDocumentอย่างทันท่วงทีเพื่อปล่อยทรัพยากรพื้นฐาน.
สรุป
Conholdate.Total for Java ให้วิธีที่ง่ายสำหรับนักพัฒนา Java ในการเพิ่มรูปร่างลงในเอกสาร PDF ทำให้สามารถสร้างรายงานและใบแจ้งหนี้ที่มีความหลากหลายและโต้ตอบได้โดยง่าย โดยการทำตามขั้นตอน เคล็ดลับการกำหนดค่า และแนวทางการทำงานที่แนะนำในคู่มือนี้ คุณสามารถรวมกราฟิกเวกเตอร์เข้าสู่กระบวนการทำงาน PDF ของคุณได้อย่างมั่นใจ อย่าลืมจัดหาลิขสิทธิ์ที่เหมาะสมสำหรับการใช้งานในสภาพแวดล้อมการผลิต; มีลิขสิทธิ์ชั่วคราวสำหรับการประเมินค่าใช้จ่าย และรายละเอียดราคาเต็มจะอยู่ใน หน้าราคา
คำถามที่พบบ่อย
ฉันจะเพิ่มฟอนต์ที่กำหนดเองให้กับรูปร่างใน PDF ได้อย่างไร?
คุณสามารถฝังฟอนต์ TrueType ได้โดยใช้ pdf.getFonts().addFont("MyFont.ttf") แล้วกำหนดให้กับรูปร่างผ่าน setFont(myFont) SDK จะรับประกันว่าฟอนต์จะถูกฝังใน PDF ขั้นสุดท้าย
เป็นไปได้หรือไม่ที่จะใส่รูปทรงลงใน PDF ที่มีอยู่โดยไม่ทำให้เนื้อหาเดิมหายไป?
ใช่ การเปิด PDF ด้วย PdfDocument.open() จะคงหน้าต่างๆ และวัตถุทั้งหมดที่มีอยู่ไว้ การเพิ่มรูปทรงลงในคอลเลกชันกราฟิกของหน้าเพียงทำให้หน้านั้นเพิ่มขึ้นเท่านั้น; ไม่ได้เขียนทับเนื้อหาเดิม
ฉันสามารถส่งออกไฟล์รูปแบบใดได้บ้างหลังจากเพิ่มรูปทรง?
Conholdate.Total for Java รองรับการบันทึกเป็น PDF, PDF/A, PDF/X และยังรองรับรูปแบบภาพเช่น PNG, JPEG, และ BMP. ใช้ pdf.save("output.pdf") หรือ pdf.save("output.png", ImageSaveOptions.Png) ตามต้องการ.
