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

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

  1. เพิ่ม Maven Repository และ Dependency - รวม Conholdate Maven repository และ dependency conholdate-total ในไฟล์ pom.xml ของคุณ ซึ่งทำให้คลาสของ SDK เช่น Document, Page และ Graph พร้อมใช้งาน.
    <repositories>
        <repository>
            <id>conholdate-repo</id>
            <name>Conholdate Maven Repository</name>
            <url>https://repository.conholdate.com/repo/</url>
        </repository>
    </repositories>
    
  1. สร้างเอกสาร PDF และหน้า - สร้างอินสแตนซ์ของ Document และเพิ่มหน้าไปยังคอลเลกชันของหน้า. คลาสนี้ได้รับการอธิบายใน เอกสารอ้างอิง API.
// Create Document instance
Document doc = new Document();
// Add page to pages collection of PDF file
com.aspose.pdf.Page page = doc.getPages().add();
  1. สร้างวัตถุ Shape - สร้างอ็อบเจ็กต์ Graph ก่อน แล้วจึงสร้างสี่เหลี่ยม, วงรี หรือเส้นและเพิ่มลงในคอลเลกชัน shapes ของมัน ตั้งค่าตำแหน่ง, ขนาด และคุณลักษณะการแสดงผลผ่าน GraphInfo ของแต่ละ shape.
// Create Graph instance
com.aspose.pdf.drawing.Graph graph = new com.aspose.pdf.drawing.Graph(100, 600);

// Rectangle
com.aspose.pdf.drawing.Rectangle rect = new com.aspose.pdf.drawing.Rectangle(100, 100, 170, 120);
graph.getShapes().add(rect);

// Ellipse
com.aspose.pdf.drawing.Ellipse ellipse = new com.aspose.pdf.drawing.Ellipse(300, 150, 150, 100);
ellipse.getGraphInfo().setColor(com.aspose.pdf.Color.getGreen());
ellipse.getGraphInfo().setLineWidth(1.5f);
graph.getShapes().add(ellipse);

// Line
com.aspose.pdf.drawing.Line line = new com.aspose.pdf.drawing.Line((new float[]{100, 300, 400, 300}));
line.getGraphInfo().setColor(com.aspose.pdf.Color.getRed());
line.getGraphInfo().setLineWidth(3);
graph.getShapes().add(line);
  1. เพิ่มรูปร่างลงในหน้า - รูปร่างแต่ละอันอยู่ภายในคอลเลกชัน shapes ของอ็อบเจ็กต์ Graph. เพิ่ม Graph เองลงในคอลเลกชัน paragraphs ของหน้าเพื่อให้รูปร่างทั้งหมดที่มันบรรจุแสดงผลบนหน้านั้น.

    // Add graph object to paragraphs collection of page instance
    page.getParagraphs().add(graph);
    
  2. บันทึก PDF ที่อัปเดต - หลังจากที่กราฟ (พร้อมกับรูปทรงทั้งหมด) ถูกเพิ่มลงในหน้าแล้ว ให้บันทึกเอกสารเป็นไฟล์ใหม่.

    // Save PDF file
    doc.save("Shapes.pdf");
    

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

ตัวอย่างต่อไปนี้รวมขั้นตอนทั้งหมดไว้ในโปรแกรมเดียวที่พร้อมทำงาน

import com.aspose.pdf.Document;
import com.aspose.pdf.Color;

public class AddShapesDemo {
    public static void main(String[] args) throws Exception {
        // Create Document instance
        Document doc = new Document();
        // Add page to pages collection of PDF file
        com.aspose.pdf.Page page = doc.getPages().add();

// Create Graph instance
        com.aspose.pdf.drawing.Graph graph = new com.aspose.pdf.drawing.Graph(100, 600);

// Create Rectangle instance
        com.aspose.pdf.drawing.Rectangle rect = new com.aspose.pdf.drawing.Rectangle(100, 100, 170, 120);
        // Add rectangle object to shapes collection of Graph object
        graph.getShapes().add(rect);

// Create ellipse
        com.aspose.pdf.drawing.Ellipse ellipse = new com.aspose.pdf.drawing.Ellipse(300, 150, 150, 100);
        ellipse.getGraphInfo().setColor(com.aspose.pdf.Color.getGreen());
        ellipse.getGraphInfo().setLineWidth(1.5f);
        // Add ellipse object to shapes collection of Graph object
        graph.getShapes().add(ellipse);

// Create line
        com.aspose.pdf.drawing.Line line = new com.aspose.pdf.drawing.Line((new float[]{100, 300, 400, 300}));
        line.getGraphInfo().setColor(com.aspose.pdf.Color.getRed());
        line.getGraphInfo().setLineWidth(3);
        // Add line object to shapes collection of Graph object
        graph.getShapes().add(line);

// Add graph object to paragraphs collection of page instance
        page.getParagraphs().add(graph);

// Save PDF file
        doc.save("Shapes.pdf");
    }
}

หมายเหตุ: ตัวอย่างโค้ดนี้แสดงการทำงานหลักของฟังก์ชัน ก่อนนำไปใช้ในโครงการของคุณ ให้ตรวจสอบและอัปเดตเส้นทางไฟล์ผลลัพธ์ (Shapes.pdf) ให้ตรงกับตำแหน่งเป้าหมายจริงของคุณ ตรวจสอบว่าขึ้นตอนการพึ่งพาทั้งหมดได้ติดตั้งอย่างถูกต้องแล้ว และทดสอบอย่างละเอียดในสภาพแวดล้อมการพัฒนาของคุณ หากคุณพบปัญหาใด ๆ โปรดดูที่ เอกสารอย่างเป็นทางการ หรือ ติดต่อทีม สนับสนุน เพื่อขอความช่วยเหลือ

การติดตั้งและตั้งค่าใน Java

เพื่อเริ่มใช้ Conholdate.Total for Java ให้ดาวน์โหลดรุ่นล่าสุดจากเว็บไซต์ทางการและเพิ่มการพึ่งพา Maven ที่แสดงไว้ก่อนหน้านี้ SDK ทำงานบน runtime ของ Java 8+ ใดก็ได้และไม่ต้องการไลบรารีเนทีฟเพิ่มเติม

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

เพิ่มรูปทรงลงใน PDF ด้วย Java และ Conholdate.Total

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

คุณสมบัติของ Conholdate.Total ที่สำคัญสำหรับงานนี้

  • ความเข้ากันได้ข้ามแพลตฟอร์ม: ทำงานบนเซิร์ฟเวอร์ Windows, Linux และ macOS.
  • การเรนเดอร์ประสิทธิภาพสูง: รูปทรงจะถูกเรนเดอร์โดยใช้เอนจินเดียวกับที่สร้างเนื้อหา PDF แบบเนทีฟ, หลีกเลี่ยงการแปลงเป็นภาพราสเตอร์.
  • การควบคุมลักษณะการแสดงผลอย่างเต็มที่: ตั้งค่าสีเส้นและความกว้างของเส้นสำหรับแต่ละรูปทรงผ่านอ็อบเจ็กต์ GraphInfo.
  • กราฟิกที่จัดกลุ่ม: เพิ่มหลายรูปทรงลงในอ็อบเจ็กต์ Graph เดียวเพื่อให้สามารถจัดตำแหน่งและจัดการร่วมกันบนหน้าได้.

กำหนดค่าคุณสมบัติของรูปร่างเพื่อการเรนเดอร์ที่เหมาะสมที่สุด

เมื่อเพิ่มรูปร่าง ให้พิจารณาคุณสมบัติดังต่อไปนี้เพื่อให้ได้ผลลัพธ์ภาพที่ต้องการ

  • ตำแหน่งและขนาด: ตัวสร้าง Shape รับพิกัดและขนาดเป็นจุด (points) เช่น new Rectangle(100, 100, 170, 120) หรือ new Ellipse(300, 150, 150, 100).
  • การวางกราฟ: วัตถุ Graph เองจะถูกกำหนดตำแหน่งด้วย new Graph(width, height) และเพิ่มลงในหน้าโดยใช้ page.getParagraphs().add(graph).
  • สี: ใช้คลาส com.aspose.pdf.Color (เช่น Color.getGreen() หรือ Color.getRed()) และตั้งค่าสีให้กับ shape ผ่าน shape.getGraphInfo().setColor(...).
  • ความกว้างของเส้น: ตั้งค่าด้วย shape.getGraphInfo().setLineWidth(...) วัดเป็นจุด; ค่า 1 เท่ากับ 1/72 นิ้ว.
  • เส้น: shape ประเภท Line ถูกสร้างจากอาร์เรย์ของพิกัด เช่น new Line(new float[]{100, 300, 400, 300}) ซึ่งแสดงจุดเริ่มต้นและจุดสิ้นสุดของเส้น.

ตัวอย่างการตั้งค่าลักษณะของรูปทรง:

ellipse.getGraphInfo().setColor(com.aspose.pdf.Color.getGreen());
ellipse.getGraphInfo().setLineWidth(1.5f);

การพิจารณาด้านประสิทธิภาพเมื่อเพิ่มรูปร่างลงใน PDF

การเพิ่มวัตถุเวกเตอร์จำนวนมากอาจทำให้เวลาในการประมวลผลและการใช้หน่วยความจำเพิ่มขึ้น โปรดปฏิบัติตามแนวทางต่อไปนี้:

  • Batch Drawing: จัดกลุ่มรูปร่างที่เกี่ยวข้องเป็นอ็อบเจ็กต์ Graph เดียวก่อนเพิ่มกราฟนั้นลงในหน้า.
  • Reuse Objects: หากคุณต้องการรูปร่างที่เหมือนกันในหลายหน้า ให้ใช้ตรรกะการกำหนดค่ารูปร่างซ้ำแทนการทำซ้ำ.
  • Avoid Over‑Scaling: กำหนดรูปร่างที่ขนาดการแสดงผลสุดท้ายเพื่อป้องกันการแปลงเป็นราสเตอร์ที่มีค่าใช้จ่ายสูง.
  • Dispose Resources: บันทึกและปล่อย Document อย่างทันท่วงทีเมื่อเพิ่มรูปร่างทั้งหมดแล้ว.

สรุป

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

คำถามที่พบบ่อย

ฉันจำเป็นต้องสร้างอ็อบเจกต์ Graph สำหรับแต่ละรูปทรงหรือไม่?
ไม่. อ็อบเจกต์ Graph เดียวสามารถเก็บหลายรูปทรงได้ — สามารถเพิ่มสี่เหลี่ยม, รูปวงรี, และเส้นต่าง ๆ ลงในคอลเลกชันรูปทรงของกราฟเดียวกันก่อนที่กราฟจะถูกเพิ่มลงในหน้า.

สามารถเพิ่มรูปร่างลงในหน้าที่เฉพาะของ PDF ที่มีหลายหน้าได้หรือไม่?
ใช่. ดึงหน้าที่ต้องการจาก doc.getPages() และเรียก page.getParagraphs().add(graph) บนอินสแตนซ์ Page นั้น

รูปแบบไฟล์ใดที่ฉันสามารถส่งออกได้หลังจากเพิ่มรูปทรง?
เมธอด Document.save() ของ Conholdate.Total for Java สามารถเขียนเป็น PDF รวมถึงรูปแบบอื่น ๆ ที่ SDK รองรับ ใช้ doc.save("Shapes.pdf") เพื่อบันทึกผลลัพธ์เป็นไฟล์ PDF มาตรฐาน