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
- Thêm Maven Repository và Dependency - Bao gồm Conholdate Maven repository và dependency
conholdate-totalvào filepom.xmlcủa bạn. Điều này sẽ làm cho các lớp SDK nhưDocument,PagevàGraphcó sẵn.<repositories> <repository> <id>conholdate-repo</id> <name>Conholdate Maven Repository</name> <url>https://repository.conholdate.com/repo/</url> </repository> </repositories>
- Tạo tài liệu PDF và một trang - Tạo một thể hiện của
Documentvà 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();
- 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 quaGraphInfocủ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);
- 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ínhGraphvà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);
- 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.
- URL tải xuống: Conholdate.Total for Java Release
- Tài liệu: Hướng dẫn sử dụng chi tiết có sẵn trong tài liệu chính thức.
- Giấy phép: Nhận giấy phép tạm thời từ trang giấy phép tạm thời hoặc xem toàn bộ bảng giá trên trang giá.
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
Graphduy 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ặcnew Ellipse(300, 150, 150, 100). - Vị trí Đồ thị: Đối tượng
Graphtự nó được đặt vị trí bằngnew Graph(width, height)và được thêm vào một trang thông quapage.getParagraphs().add(graph). - Màu sắc: Sử dụng lớp
com.aspose.pdf.Color(ví dụColor.getGreen()hoặcColor.getRed()) và đặt nó cho một shape quashape.getGraphInfo().setColor(...). - Độ rộng Đường: Đặt bằng
shape.getGraphInfo().setLineWidth(...), đo bằng điểm; giá trị1tươ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
Graphduy 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
Documentngay 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.
