
Nội dung bên trong trang PDF rất khó chỉnh sửa, nhưng đặc tả PDF định nghĩa một tập hợp đầy đủ các đối tượng có thể được thêm vào các trang PDF mà không làm thay đổi nội dung trang. Các đối tượng này được gọi là chú thích và mục đích của chúng bao gồm từ đánh dấu nội dung trang đến triển khai các tính năng tương tác như biểu mẫu.
Hầu hết các trình xem PDF đều cho phép tạo và chỉnh sửa nhiều loại chú thích khác nhau, ví dụ như tô sáng văn bản, ghi chú, dòng hoặc hình dạng và bất kể loại chú thích nào được tạo ra, trình xem PDF tuân thủ thông số kỹ thuật PDF cũng phải hỗ trợ kết xuất cho tất cả các loại chú thích. Tuy nhiên, khi xử lý một tập hợp lớn các tài liệu, quy trình thủ công để thêm chú thích trở nên cồng kềnh và do đó, API lập trình là một giải pháp khả thi. Chúng ta sẽ thảo luận thêm về việc sử dụng Aspose.PDF Cloud SDK cho Java để thêm Chú thích vào các tài liệu PDF.
- Cài đặt SDK
- Gạch bỏ văn bản bằng Java
- Thêm chú thích nổi bật
- Cách thêm chú thích dòng
- Thêm chú thích hình tròn vào PDF
Cài đặt SDK
Aspose.PDF Cloud SDK for Java là một API lập trình cho phép các lập trình viên Java tạo, thao tác cũng như chuyển đổi các tài liệu PDF hiện có sang các định dạng tài liệu được hỗ trợ khác. Cloud SDK có sẵn để tải xuống qua Maven và GitHub. Bây giờ hãy thêm các chi tiết sau vào tệp pom.xml của bạn để tải xuống và sử dụng Aspose.Pdf.jar trong dự án xây dựng Maven của bạn.
<repositories>
<repository>
<id>aspose-cloud</id>
<name>artifact.aspose-cloud-releases</name>
<url>https://artifact.aspose.cloud/repo</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-pdf-cloud</artifactId>
<version>21.1.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
Để biết thêm thông tin, vui lòng truy cập Cách cài đặt Aspose.Cloud SDK.
Ngoài ra, xin lưu ý rằng để đảm bảo quyền riêng tư của người dùng và tính toàn vẹn của dữ liệu, tất cả các API của chúng tôi chỉ có thể truy cập được đối với những người được ủy quyền. Do đó, trước tiên bạn cần truy cập Bảng điều khiển Aspose.Cloud và nếu bạn có tài khoản GitHub hoặc Google, chỉ cần Đăng ký. Nếu không, hãy nhấp vào nút Tạo tài khoản mới và cung cấp thông tin bắt buộc. Bây giờ hãy đăng nhập vào bảng điều khiển bằng thông tin xác thực và mở rộng phần Ứng dụng từ bảng điều khiển và cuộn xuống phần Thông tin xác thực của khách hàng để xem thông tin chi tiết về ID khách hàng và Bí mật khách hàng.
Gạch bỏ văn bản bằng Java
Đôi khi chúng ta có yêu cầu đánh dấu một số nội dung nhất định bên trong tài liệu là lỗi thời mà không xóa nội dung đó khỏi tài liệu. Strikethrough (hay còn gọi là strikeout) được biểu thị bằng các từ có đường ngang chạy qua giữa. Điều này ngụ ý rằng văn bản đó sai hoặc lỗi thời và gần đây đã bị xóa hoặc đánh dấu như vậy. Chúng ta có thể thiết lập các thiết lập của chú thích gạch ngang bằng cách sử dụng thuộc tính strikethroughSettings. Thuộc tính strikethroughSettings được sử dụng để thiết lập các thuộc tính màu sắc, độ mờ đục, tác giả, chủ đề, modifiedDate và isLocked của chú thích gạch ngang.
// Nhận ClientID và ClientSecret từ https://dashboard.aspose.cloud/
String clientId = "29ac1517-753f-4303-b755-7185e35cf939";
String clientSecret = "c537caf71eafc8a75a5ee7813b703276";
// thể hiện createPdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
// nhập tài liệu PDF
String sourcePDF = "PdfWithTable.pdf";
int pageNumber = 1;
// tạo vùng hình chữ nhật cho chú thích
Rectangle rect = new Rectangle()
.LLX(200.)
.LLY(380.)
.URX(250.)
.URY(375.);
List<AnnotationFlags> flags = new ArrayList<>();
flags.add(AnnotationFlags.DEFAULT);
List<Point> points = new ArrayList<>();
points.add(new Point().X(132.).Y(380.)); // Top-Left edge of the Strike Through line
points.add(new Point().X(95.).Y(10.)); // Top-Right edge of the strike through line
points.add(new Point().X(130.).Y(25.));
points.add(new Point().X(130.).Y(10.));
StrikeOutAnnotation annotation = new StrikeOutAnnotation();
annotation.setName("Name");
annotation.setRect(rect);
annotation.setFlags(flags);
annotation.setHorizontalAlignment(HorizontalAlignment.CENTER);
annotation.setRichText("Rich Text");
annotation.setSubject("Subj");
annotation.setZindex(1);
annotation.setTitle("Title");
annotation.setQuadPoints(points);
annotation.setModified("05/22/2021 00:00:00.000 AM");
List<StrikeOutAnnotation> annotations = new ArrayList<>();
annotations.add(annotation);
AsposeResponse response = pdfApi.postPageStrikeOutAnnotations(sourcePDF, pageNumber, annotations, null, null);
assertEquals(200, (int)response.getCode());
Thêm chú thích nổi bật
Việc làm nổi bật nội dung bên trong PDF là điều cần thiết vì nó cho phép chúng ta thu hút sự chú ý vào thông tin quan trọng trong tài liệu. Làm nổi bật có hiệu quả vì trước tiên nó yêu cầu người đọc chọn ra các phần quan trọng, sau đó cung cấp một cách hiệu quả để xem lại thông tin đó sau. Cloud API của chúng tôi cung cấp khả năng làm nổi bật nội dung bên trong tài liệu PDF. Dưới đây là các bước để thêm chú thích làm nổi bật trong tệp PDF.
- Trước hết, hãy tạo một phiên bản của PdfApi trong khi cung cấp thông tin chi tiết về ClientSecret và ClientId.
- Chúng tôi tạo một thể hiện File để tải tệp PDF từ hệ thống cục bộ và sau đó gọi phương thức uploadFile(…) của lớp PdfApi để tải tài liệu lên bộ nhớ đám mây.
- Bây giờ hãy tạo một thể hiện của lớp Rectangle để chỉ định vùng hình chữ nhật mà chú thích có thể được thêm vào.
- Sau đó tạo một ArrayList kiểu Point để lưu trữ thông tin liên quan đến các điểm để vẽ HighlightAnnotation.
- Tạo một đối tượng của lớp HighlightAnnotation và thiết lập Tên, Vùng hình chữ nhật, Chủ đề, Tiêu đề, Điểm tứ giác, Ngày sửa đổi chú thích.
- Bước tiếp theo là tạo Danh sách kiểu HighlightAnnotation và thêm đối tượng HighlightAnnotation đã tạo ở trên vào danh sách này.
- Cuối cùng, gọi phương thức postPageHighlightAnnotations(…) của lớp PdfApi và truyền PDF nguồn, số trang và danh sách Chú thích làm đối số.

Hình ảnh 1: - Làm nổi bật chú thích trong tệp PDF.
Bạn có thể tải xuống các tệp mẫu được sử dụng trong ví dụ trên từ các liên kết sau
Cách thêm chú thích dòng
Tương tự như việc thêm chú thích gạch bỏ và tô sáng, API cũng cho phép bạn thêm Chú thích Dòng trong tài liệu PDF. Chúng tôi có một lớp có tên LineAnnotation để thực hiện yêu cầu này. Dưới đây là thông tin chi tiết hơn về cách thực hiện yêu cầu này.
- Trước hết, hãy tạo một phiên bản của PdfApi trong khi cung cấp thông tin chi tiết về ClientSecret và ClientId.
- Tùy chọn, chúng ta tạo một thể hiện File để tải tệp PDF từ hệ thống cục bộ và sau đó gọi phương thức uploadFile(…) của lớp PdfApi để tải tài liệu lên bộ nhớ đám mây. Trong trường hợp tệp đã có sẵn trên bộ nhớ đám mây, chúng ta có thể sử dụng tệp đó.
- Các thuộc tính khởi tạo đối tượng còn lại giống như đã đề cập ở trên đối với HighlithAnnotation, ngoại trừ việc chúng ta cần tạo một đối tượng của lớp LineAnnotation và đặt điểm bắt đầu và kết thúc của một đường thẳng bằng phương thức setStarting(…) và setEnding(…).
// Nhận ClientID và ClientSecret từ https://dashboard.aspose.cloud/
String clientId = "7042694c-5251-4aba-83c9-e81e7518724f";
String clientSecret = "db246d4742e8cd22e7266c9391992689";
// thể hiện createPdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
// nhập tài liệu PDF
String sourcePDF = "PdfWithTable.pdf";
// Tải tập tin từ hệ thống cục bộ
File file = new File("/Users/nayyershahbaz/Downloads/" + sourcePDF);
// tải tập tin lên bộ nhớ đám mây
FilesUploadResult uploadResponse = pdfApi.uploadFile(sourcePDF, file, null);
// số trang nơi chú thích sẽ được thêm vào
int pageNumber = 1;
// tạo vùng hình chữ nhật cho chú thích
Rectangle rect = new Rectangle()
.LLX(100.)
.LLY(500.)
.URX(400.)
.URY(510.);
// tạo đối tượng List của loại AnnotationFlags
List<AnnotationFlags> flags = new ArrayList<>();
flags.add(AnnotationFlags.DEFAULT);
// Tạo đối tượng chú thích dòng
LineAnnotation annotation = new LineAnnotation();
annotation.setName("Name");
annotation.setRect(rect);
annotation.setFlags(flags);
annotation.setRichText("Rich Text");
annotation.setSubject("Subj");
annotation.setTitle("Title");
// đặt điểm bắt đầu của dòng
annotation.setStarting(new Point().X(100.).Y(100.));
// đặt điểm kết thúc của đường thẳng
annotation.setEnding(new Point().X(20.).Y(680.));
// tạo màu cho staleblue
Color color = new Color();
color.setA(0x00);
color.setR(0x6A);
color.setG(0x5A);
color.setB(0xCD);
// thiết lập màu chú thích
annotation.interiorColor(color);
// đặt ngày sửa đổi chú thích
annotation.setModified("05/22/2021 00:00:00.000 AM");
// Tạo danh sách thể hiện của chú thích dòng
List<LineAnnotation> annotations = new ArrayList<>();
// thêm đối tượng LineAnnotation vào danh sách Line Annotations
annotations.add(annotation);
// gọi phương thức API để thêm chú thích dòng vào tệp PDF
AsposeResponse response = pdfApi.postPageLineAnnotations(sourcePDF, pageNumber, annotations, null, null);
Thêm chú thích hình tròn vào PDF
Chú thích hình tròn cũng thường được sử dụng trong các tài liệu PDF và API hỗ trợ rất tốt loại chú thích này. Để thêm chú thích hình tròn, vui lòng thử sử dụng lớp CircleAnnotation. Mã được chỉ định bên dưới có thể được sử dụng để đáp ứng yêu cầu này.
// Nhận ClientID và ClientSecret từ https://dashboard.aspose.cloud/
String clientId = "7042694c-5251-4aba-83c9-e81e7518724f";
String clientSecret = "db246d4742e8cd22e7266c9391992689";
// thể hiện createPdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
// nhập tài liệu PDF
String sourcePDF = "PdfWithTable.pdf";
// Tải tập tin từ hệ thống cục bộ
File file = new File("/Users/nayyershahbaz/Downloads/" + sourcePDF);
// tải tập tin lên bộ nhớ đám mây
FilesUploadResult uploadResponse = pdfApi.uploadFile(sourcePDF, file, null);
// số trang nơi chú thích sẽ được thêm vào
int pageNumber = 1;
// tạo vùng hình chữ nhật cho chú thích
Rectangle rect = new Rectangle()
.LLX(100.)
.LLY(700.)
.URX(300.)
.URY(500.);
// tạo đối tượng List của loại AnnotationFlags
List<AnnotationFlags> flags = new ArrayList<>();
flags.add(AnnotationFlags.DEFAULT);
// Tạo đối tượng Chú thích nổi bật
CircleAnnotation annotation = new CircleAnnotation();
annotation.setName("Name");
annotation.setRect(rect);
annotation.setFlags(flags);
annotation.setRichText("Rich Text");
annotation.setSubject("Subj");
annotation.setTitle("Title");
// tạo màu cho staleblue
Color color = new Color();
color.setR(0xC7);
color.setG(0xE2);
color.setB(0x6f);
// thiết lập màu chú thích
annotation.interiorColor(color);
// đặt ngày sửa đổi chú thích
annotation.setModified("05/22/2021 00:00:00.000 AM");
// Tạo danh sách thể hiện của Chú thích nổi bật
List<CircleAnnotation> annotations = new ArrayList<>();
// thêm đối tượng CircleAnnotation vào danh sách Circle Annotations
annotations.add(annotation);
// gọi phương thức API để thêm chú thích hình tròn vào tệp PDF
AsposeResponse response = pdfApi.postPageCircleAnnotations(sourcePDF, pageNumber, annotations, null, null);

Hình ảnh 2: - Chú thích hình tròn trong tệp PDF.
Tài liệu PDF đầu vào và tệp PDF kết quả, như hiển thị ở trên, có thể được tải xuống từ các liên kết sau:
Mẹo nhanh
Sử dụng Ứng dụng chú thích PDF trực tuyến miễn phí của chúng tôi để xóa mọi chú thích khỏi PDF của bạn chỉ bằng một cú nhấp chuột.
Phần kết luận
Trong blog này, chúng tôi đã thảo luận về nhiều loại Annotations hiện được Aspose.PDF Cloud SDK for Java hỗ trợ. Ngoài Annotations, API còn hỗ trợ rất nhiều tính năng thú vị khác liên quan đến định dạng PDF. Để biết thêm thông tin, chúng tôi khuyên bạn nên khám phá thêm Hướng dẫn dành cho nhà phát triển.
Xin lưu ý rằng chúng tôi luôn nỗ lực phục vụ khách hàng theo cách tốt nhất có thể và ghi nhận phản hồi và đề xuất của họ. Vì vậy, trong trường hợp bạn gặp bất kỳ vấn đề nào khi sử dụng API hoặc có bất kỳ thắc mắc liên quan nào, vui lòng liên hệ với chúng tôi qua Diễn đàn hỗ trợ miễn phí.
Bài viết liên quan
Chúng tôi thực sự khuyên bạn nên truy cập vào các liên kết sau để tìm hiểu thêm về: