การเพิ่มกราฟิกเวกเตอร์ลงในไฟล์ PDF เป็นความต้องการทั่วไปสำหรับการสร้างรายงาน ใบแจ้งหนี้ และเอกสารเชิงโต้ตอบ Conholdate.Total for Java เป็น SDK ที่มีประสิทธิภาพซึ่งทำให้การจัดการ PDF บนเซิร์ฟเวอร์เป็นเรื่องง่าย ในคู่มือนี้คุณจะได้เรียนรู้วิธีแทรกสี่เหลี่ยม, รูปวงรี และเส้นลงใน PDF, กำหนดลักษณะการแสดงผลของพวกมัน, และจัดการข้อพิจารณาด้านประสิทธิภาพ ทั้งหมดนี้พร้อมตัวอย่างโค้ด Java ที่ชัดเจน

ขั้นตอนการเพิ่มรูปร่างลงใน PDF ด้วย Java

  1. เพิ่ม 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>
    
  1. โหลดเอกสาร PDF - สร้างอินสแตนซ์ของ PdfDocument และเปิดไฟล์ PDF เป้าหมาย คลาสนี้ได้รับการอธิบายไว้ใน API reference.
PdfDocument pdf = new PdfDocument();
pdf.open("input.pdf");
  1. 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);
  1. เพิ่มรูปทรงลงในหน้า - ดึงหน้าที่ต้องการจากเอกสารและเพิ่มแต่ละรูปทรงลงในคอลเลกชันกราฟิกของมัน.

    Page page = pdf.getPages().get_Item(0); // first page
    page.getGraphics().addShape(rect);
    page.getGraphics().addShape(ellipse);
    page.getGraphics().addShape(line);
    
  2. บันทึก 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+ ใดก็ได้และไม่ต้องการไลบรารีเนทีฟเพิ่มเติม

คุณลักษณะหลักและภาพรวม

เพิ่มรูปร่างลงใน 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) ตามต้องการ.