Thêm đồ họa vector vào các tệp PDF là một yêu cầu phổ biến cho việc tạo báo cáo, hoá đơn và tài liệu tương tác. Conholdate.Total for Java là một SDK mạnh mẽ giúp đơn giản hoá việc thao tác PDF phía máy chủ. Trong hướng dẫn này, bạn sẽ học cách chèn hình chữ nhật, hình elip và đường thẳng vào PDF bằng đối tượng Graph, cấu hình giao diện của chúng và xử lý các cân nhắc về hiệu năng, tất cả đều kèm theo các ví dụ mã Java rõ ràng.

Các bước thêm hình dạng vào PDF trong Java

  1. Thêm Maven Repository và Dependency - Bao gồm Conholdate Maven repository và dependency conholdate-total vào file pom.xml của bạn. Điều này sẽ làm cho các lớp SDK như Document, PageGraph có sẵn.
    <repositories>
        <repository>
            <id>conholdate-repo</id>
            <name>Conholdate Maven Repository</name>
            <url>https://repository.conholdate.com/repo/</url>
        </repository>
    </repositories>
    
  1. Tạo tài liệu PDF và một trang - Tạo một thể hiện của Document và thêm một trang vào bộ sưu tập các trang của nó. Lớp này được tài liệu hoá trong tham chiếu 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. Tạo Đối Tượng Hình Dạng - Đầu tiên tạo một đối tượng Graph, sau đó khởi tạo các hình chữ nhật, hình elip hoặc đường thẳng và thêm chúng vào bộ sưu tập hình dạng của nó. Đặt vị trí, kích thước và các thuộc tính hiển thị thông qua GraphInfo của mỗi hình.
// 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. Thêm hình dạng vào một trang - Các hình dạng riêng lẻ nằm trong bộ sưu tập shapes của đối tượng Graph. Thêm chính Graph vào bộ sưu tập đoạn văn của trang để tất cả các hình dạng mà nó chứa được hiển thị trên trang đó.
// Add graph object to paragraphs collection of page instance
page.getParagraphs().add(graph);
  1. Lưu PDF đã cập nhật - Sau khi biểu đồ (với tất cả các hình dạng) đã được thêm vào trang, lưu tài liệu vào một tệp mới.
// Save PDF file
doc.save("Shapes.pdf");

Thêm Hình Dạng vào PDF trong Java - Ví dụ Mã Đầy Đủ

Ví dụ sau kết hợp tất cả các bước lại thành một chương trình duy nhất, sẵn sàng để chạy.

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");
    }
}

Lưu ý: Ví dụ mã này minh họa chức năng cốt lõi. Trước khi sử dụng trong dự án của bạn, hãy chắc chắn cập nhật đường dẫn tệp đầu ra (Shapes.pdf) sao cho phù hợp với vị trí mục tiêu thực tế, xác minh rằng tất cả các phụ thuộc cần thiết đã được cài đặt đúng cách, và kiểm tra kỹ lưỡng trong môi trường phát triển của bạn. Nếu gặp bất kỳ vấn đề nào, vui lòng tham khảo tài liệu chính thức hoặc liên hệ với đội hỗ trợ để được trợ giúp.

Cài đặt và Thiết lập trong Java

Để bắt đầu sử dụng Conholdate.Total for Java, tải xuống bản phát hành mới nhất từ trang web chính thức và thêm phụ thuộc Maven đã được hiển thị ở trên. SDK hoạt động trên bất kỳ môi trường chạy Java 8+ nào và không yêu cầu thư viện gốc bổ sung.

Key Features and Overview

Add Shapes to PDF in Java with Conholdate.Total

Conholdate.Total for Java cung cấp một API thống nhất để tạo và chỉnh sửa nội dung PDF. Chức năng vẽ hình hoạt động với đồ họa vector thông qua đối tượng Graph và bộ sưu tập các hình dạng của nó, đảm bảo các phần tử được thêm vào vẫn sắc nét ở bất kỳ mức thu phóng nào. Bạn có thể vẽ các primitive cơ bản (hình chữ nhật, hình elip, đường) và kết hợp một vài trong số chúng trong một Graph duy nhất trước khi đặt nó lên trang.

Conholdate.Total Features That Matter For This Task

  • Cross‑platform compatibility: Hoạt động trên các máy chủ Windows, Linux và macOS.
  • High‑performance rendering: Các hình dạng được kết xuất bằng cùng một engine tạo nội dung PDF gốc, tránh rasterization.
  • Full control over appearance: Đặt màu viền và độ rộng đường cho mỗi hình dạng thông qua đối tượng GraphInfo.
  • Grouped graphics: Thêm nhiều hình dạng vào một đối tượng Graph duy nhất để chúng có thể được định vị và quản lý cùng nhau trên trang.

Cấu hình các thuộc tính hình dạng để hiển thị tối ưu

Khi thêm các hình dạng, hãy xem xét các thuộc tính sau để đạt được kết quả hình ảnh mong muốn:

  • Vị trí và Kích thước: Các hàm khởi tạo Shape nhận tọa độ và kích thước tính bằng điểm, ví dụ new Rectangle(100, 100, 170, 120) hoặc new Ellipse(300, 150, 150, 100).
  • Vị trí Đồ thị: Đối tượng Graph tự nó được đặt vị trí bằng new Graph(width, height) và được thêm vào một trang thông qua page.getParagraphs().add(graph).
  • Màu sắc: Sử dụng lớp com.aspose.pdf.Color (ví dụ Color.getGreen() hoặc Color.getRed()) và đặt nó cho một shape qua shape.getGraphInfo().setColor(...).
  • Độ rộng Đường: Đặt bằng shape.getGraphInfo().setLineWidth(...), đo bằng điểm; giá trị 1 tương đương 1/72 inch.
  • Đường thẳng: Một shape Line được tạo từ một mảng các tọa độ, ví dụ new Line(new float[]{100, 300, 400, 300}), đại diện cho điểm bắt đầu và kết thúc của đường.

Ví dụ về việc thiết lập giao diện hình dạng:

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

Các yếu tố cần cân nhắc về hiệu suất khi thêm hình dạng vào PDF

Thêm nhiều đối tượng vector có thể làm tăng thời gian xử lý và mức sử dụng bộ nhớ. Hãy tuân theo các hướng dẫn sau:

  • Vẽ Hàng Loạt: Nhóm các hình dạng liên quan vào một đối tượng Graph duy nhất trước khi thêm đồ thị đó vào trang.
  • Tái Sử Dụng Đối Tượng: Nếu bạn cần các hình dạng giống hệt trên nhiều trang, hãy tái sử dụng logic cấu hình hình dạng thay vì sao chép lại.
  • Tránh Phóng To Quá Mức: Định nghĩa các hình dạng ở kích thước hiển thị cuối cùng để ngăn ngừa việc chuyển đổi raster tốn kém.
  • Giải Phóng Tài Nguyên: Lưu và giải phóng Document ngay sau khi đã thêm tất cả các hình dạng.

Kết luận

Conholdate.Total for Java cung cấp cho các nhà phát triển Java một cách đơn giản để thêm các hình dạng vào tài liệu PDF, cho phép tạo ra các báo cáo và hoá đơn phong phú, tương tác. Bằng cách làm theo các bước, mẹo cấu hình và hướng dẫn hiệu năng trong hướng dẫn này, bạn có thể tích hợp đồ họa vector vào quy trình làm việc PDF của mình một cách tự tin. Hãy nhớ đảm bảo có giấy phép phù hợp cho việc sử dụng trong môi trường sản xuất; một giấy phép tạm thời có sẵn để đánh giá, và chi tiết giá đầy đủ được liệt kê trên trang giá.

Câu hỏi thường gặp

Tôi có cần tạo một đối tượng Graph cho mỗi hình dạng không?
Không. Một đối tượng Graph duy nhất có thể chứa nhiều hình dạng — hình chữ nhật, hình elip và các đường thẳng đều có thể được thêm vào bộ sưu tập hình dạng của cùng một đồ thị trước khi đồ thị được thêm vào trang.

Có thể thêm hình dạng vào một trang cụ thể của PDF đa trang không?
Có. Lấy trang mục tiêu từ doc.getPages() và gọi page.getParagraphs().add(graph) trên đối tượng Page cụ thể đó.

Bạn có thể xuất sang định dạng tệp nào sau khi thêm hình dạng?
Phương thức Document.save() của Conholdate.Total for Java có thể ghi ra PDF cũng như các định dạng khác được SDK hỗ trợ. Sử dụng doc.save("Shapes.pdf") để lưu kết quả dưới dạng tệp PDF tiêu chuẩn.