Biên tập PDF trực tuyến

Chúng tôi có yêu cầu xóa các chi tiết nhạy cảm khỏi các tệp PDF vì tính bảo mật của dữ liệu, vì vậy chúng tôi thường xóa (xóa văn bản, hình ảnh, v.v.) khỏi một vùng trang nhất định của tài liệu PDF. Tuy nhiên, khi xử lý một tập hợp lớn các tài liệu, chúng tôi cần sử dụng API để thực hiện yêu cầu này.

Trong bài viết này, chúng ta sẽ thảo luận về các bước về cách biên tập PDF trực tuyến bằng cách sử dụng lớp RedactionAnnotation của Aspose.PDF Cloud SDK cho Java.

Cài đặt SDK

Aspose.PDF Cloud SDK for Java là một API lập trình dành riêng cho các nhà phát triển Java và được xây dựng trên nền tảng Aspose.PDF Cloud API. API đám mây của chúng tôi có thể được sử dụng từ bất kỳ nền tảng nào mà không cần cài đặt phần mềm cụ thể nào. Tuy nhiên, để sử dụng SDK, trước tiên bạn cần cài đặt nó trên hệ thống.

Cloud SDK có sẵn để tải xuống qua MavenGitHub. 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>

Sau khi SDK được cài đặt, bước tiếp theo là lấy Client ID và Client Secret được cá nhân hóa của bạn. Vui lòng 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. 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ề Client ID và Client Secret.

Thêm chú thích biên tập bằng Java

Trong phần dưới đây, chúng tôi đã giải thích các bước về cách thêm hộp hình chữ nhật để xóa nội dung của tệp PDF bằng Aspose.PDF Cloud SDK cho Java.

  • Trước hết, chúng ta cần tạo một đối tượng PdfApi trong khi truyền thông tin chi tiết ClientId và ClientSecret lấy từ bảng điều khiển Aspose.Cloud.
  • Thứ hai, tạo một đối tượng của lớp Rectangle để chỉ định vùng trên trang nơi chú thích sẽ được thêm vào.
  • Thứ ba, chọn giá trị Mặc định từ liệt kê AnnotationFlags và thêm nó vào Danh sách loại AnnotationFlags.
  • Bây giờ hãy tạo một thể hiện của lớp RedactionAnnotation và thiết lập vùng hình chữ nhật bằng phương thức setRect(…).
  • Đặt căn chỉnh theo chiều ngang bằng phương thức setHorizontalAlignment(…) và chọn Center từ phép liệt kê HorizontalAlignment.
  • Để tô màu bên trong Annotation, hãy sử dụng phương thức setFillColor(…) và truyền đối tượng Color.
  • Đặt ngày sửa đổi cuối cùng của chú thích bằng phương thức setModified(…).
  • Cuối cùng, tạo một Danh sách kiểu RedactionAnnotation và thêm đối tượng RedactAnnotation vào danh sách này.
  • Cuối cùng, gọi phương thức postPageRedactionAnnotations(…) của PdfApi và truyền tên tệp nguồn, số trang cần thêm chú thích. Ngoài ra, truyền RedactionAnnotation List làm đối số để bắt đầu quá trình biên tập.
// 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";

// trang PDF để đặt Chú thích
int pageNumber = 1;

// tạo đối tượng hình chữ nhật để chỉ định vùng chú thích biên tập
// vùng được tính từ góc dưới bên trái của trang
Rectangle rect = new Rectangle()

// đơn vị đo lường là điểm
  .LLX(100.)
  .LLY(700.)
  .URX(200.)
  .URY(600.);

// tạo mảng AnnotationFlags
List<AnnotationFlags> flags = new ArrayList<>();

// đặt AnnotationFlag thành mặc định
flags.add(AnnotationFlags.DEFAULT);

// tạo ArrayList các điểm
List<Point> points = new ArrayList<>();
points.add(new Point().X(10.).Y(40.));
points.add(new Point().X(30.).Y(40.));

// tạo đối tượng chú thích Redact
RedactionAnnotation annotation = new RedactionAnnotation();

// đặt tên cho Chú thích. 
// Nó hữu ích khi chúng ta có nhiều chú thích trong một tài liệu
annotation.setName("Name");
// thiết lập vùng hình chữ nhật cho Chú thích Redact
annotation.setRect(rect);
annotation.setFlags(flags);

// đặt căn chỉnh ngang làm trung tâm
annotation.setHorizontalAlignment(HorizontalAlignment.CENTER);

// đặt ZIndex thành 1. 
annotation.setZindex(1);

// Xác định màu SlateBlue trong mã Hex
Color color = new Color();
color.setA(0x00);
color.setR(0x6A);
color.setG(0x5A);
color.setB(0xCD);
// chỉ định màu tô cho Chú thích
annotation.setFillColor(color);

// Ngày và giờ chú thích được sửa đổi lần cuối.
annotation.setModified("05/21/2021 12:00:00.000 AM");

// Đặt một mảng gồm 8xN số chỉ định tọa độ 
// của vùng nội dung có ý định xóa bỏ.
annotation.setQuadPoint(points);
			        
// tạo một Đối tượng Danh sách có kiểu RedactAnnotation
List<RedactionAnnotation> annotations = new ArrayList<>();

// thêm đối tượng Annotations được tạo trước đó vào mảng RedactAnnotation
annotations.add(annotation);

// thêm RedactAnnotation vào tài liệu PDF
AsposeResponse response = pdfApi.postPageRedactionAnnotations(sourcePDF, pageNumber, annotations, null, null, true);
assertEquals(200, (int)response.getCode());
Tài liệu PDF đã biên tập

Hình ảnh 1: - Đã thêm chú thích đã chỉnh sửa vào tệp PDF.

Tải xuống các tệp mẫu được sử dụng trong ví dụ trên từ

Đọc chú thích biên tập trang

Aspose.PDF Cloud SDK for Java cũng cung cấp khả năng đọc thông tin liên quan đến chú thích Redact hiện có trong tài liệu PDF. Các bước dưới đây xác định cách đọc chi tiết Chú thích bằng Java.

// 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";

// Nhận chú thích biên tập tài liệu
RedactionAnnotationsResponse responseAnnotations = pdfApi.getPageRedactionAnnotations(sourcePDF,1, null, null);
assertEquals(200, (int)responseAnnotations.getCode());

// in số lượng chú thích có trong tài liệu
System.out.println(responseAnnotations.getAnnotations().getList().size());

Cập nhật chú thích biên tập hiện có

Nếu một tài liệu PDF đã chứa chú thích Biên tập, chúng ta cũng có thể cập nhật chúng bằng API. Dưới đây là thông tin chi tiết về cách cập nhật chú thích hiện có trong tài liệu PDF.

  • Tạo một phiên bản của PdfApi trong khi truyền thông tin chi tiết về Client ID và Client Secret làm đối số.
  • Tạo một đối tượng Rectangle để xác định vùng chú thích. Nó được tính từ góc dưới bên trái của tài liệu và đơn vị mặc định là Point.
  • Tạo Danh sách AnnotationFlags và thêm giá trị AnnotationFlags.DEFAULT vào danh sách.
  • Bây giờ chúng ta cần tạo đối tượng RedactionAnnotation và gọi phương thức setRect(…) để xác định vùng hình chữ nhật của chú thích.
  • Sử dụng phương thức setModified(…) để thiết lập ngày sửa đổi cuối cùng của Chú thích.
  • Gọi phương thức getDocumentRedactionAnnotations(…) của lệnh gọi PdfApi để đọc danh sách Chú thích từ tài liệu.
  • Lấy đối tượng Chú thích cụ thể bằng cách sử dụng responseAnnotations.getAnnotations().getList().get(0).getId().
  • Cuối cùng, gọi phương thức putRedactionAnnotation(…) của lớp PdfApi để cập nhật Chú thích biên tập hiện có trong tệp PDF.
// 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 = "PdfWithAnnotations.pdf";	        
			        
// tạo vùng hình chữ nhật cho chú thích  
Rectangle rect = new Rectangle()
  .LLX(200.)
  .LLY(120.)
  .URX(150.)
  .URY(100.);

List<AnnotationFlags> flags = new ArrayList<>();
flags.add(AnnotationFlags.DEFAULT);

List<Point> points = new ArrayList<>();
points.add(new Point().X(10.).Y(40.));
points.add(new Point().X(30.).Y(40.));

// tạo đối tượng chú thích biên tập
RedactionAnnotation annotation = new RedactionAnnotation();
// đặt tên cho chú thích
annotation.setName("Name Updated");

// thiết lập vùng hình chữ nhật cho chú thích
annotation.setRect(rect);
annotation.setFlags(flags);
annotation.setHorizontalAlignment(HorizontalAlignment.CENTER);
annotation.setZindex(1);
annotation.setModified("01/01/2018 12:02:03.000 AM");
annotation.setQuadPoint(points);

// Xác định màu SlateBlue trong mã Hex
Color color = new Color();
color.setA(0x00);
color.setR(0x6A);
color.setG(0x5A);
color.setB(0xCD);

// chỉ định màu tô cho Chú thích
annotation.setFillColor(color);

// lấy chú thích hiện có từ tài liệu
RedactionAnnotationsResponse responseAnnotations = pdfApi.getDocumentRedactionAnnotations(sourcePDF, null, null);
assertEquals(200, (int)responseAnnotations.getCode());

// lấy chú thích ở chỉ mục 0
String annotationId = responseAnnotations.getAnnotations().getList().get(0).getId();

// cập nhật chú thích ở mục lục 0
AsposeResponse response = pdfApi.putRedactionAnnotation(sourcePDF, annotationId, annotation, null, null, true);
assertEquals(200, (int)response.getCode());
Đã cập nhật chú thích biên tập

Hình ảnh 2: - Đã cập nhật chú thích đã chỉnh sửa.

Các tập tin tài nguyên được sử dụng trong ví dụ trên có thể được tải xuống từ các liên kết sau

Phần kết luận

Trong bài viết này, chúng tôi đã thảo luận về các bước về cách biên tập thông tin nhạy cảm từ các tài liệu PDF. Ngoài chú thích Biên tập, API còn hỗ trợ rất nhiều tính năng Chú thích khác và bạn có thể tìm thấy thông tin chi tiết về các tính năng này tại Làm việc với Chú thích. Bạn có thể cân nhắc truy cập Trang chủ sản phẩm để biết thêm thông tin về các khả năng của tính năng này. Nếu bạn có bất kỳ thắc mắc nào liên quan, vui lòng liên hệ qua Diễn đàn hỗ trợ sản phẩm miễn phí.