Thêm hình mờ vào PDF

Hình mờ là văn bản hoặc hình ảnh xuất hiện ở phía trước hoặc phía sau nội dung tài liệu hiện có, như một con tem. Ví dụ, bạn có thể áp dụng hình mờ “Bí mật” cho các trang có thông tin nhạy cảm. Hình mờ có thể được sử dụng để bảo vệ thông tin bí mật và để chỉ ra tính hợp lệ của một tài liệu pháp lý. Bạn cũng có thể đóng dấu mờ trên bất kỳ tờ tiền giấy nào, khi chúng giúp ngăn chặn việc làm giả. Trong bài viết này, chúng ta sẽ thảo luận về các tính năng liên quan đến hình mờ trong tài liệu PDF.

API REST thao tác PDF

Aspose.PDF Cloud là REST API từng đoạt giải thưởng của chúng tôi cung cấp khả năng tạo, thao tác cũng như hiển thị các tệp PDF sang các định dạng được hỗ trợ khác bao gồm DOCX, PPTX, XLSX, XPS, SVG, JPEG, v.v. Bây giờ chúng ta hãy nói về Aspose.PDF Cloud SDK cho Java, đây là trình bao bọc Java xung quanh Aspose.PDF Cloud API. Nó cung cấp tất cả các tính năng của Cloud REST API bao gồm khả năng thêm hình mờ vào PDF bằng ngôn ngữ lập trình Java.

Để sử dụng Java Cloud SDK, bước đầu tiên là cài đặt Aspose.PDF Cloud SDK for Java. Cloud SDK có sẵn để tải xuống qua Maven | GitHub. Dưới đây là thông tin chi tiết về cách tải xuống và sử dụng Aspose.Pdf.jar trong dự án xây dựng Maven.

Thêm các phụ thuộc sau vào tệp pom.xml 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>

Thêm hình mờ văn bản vào PDF bằng REST API

Để sử dụng Cloud API, trước tiên bạn cần đăng ký một tài khoản trên bảng điều khiển Aspose.Cloud nơi bạn sẽ thấy thông tin chi tiết Client ID và Client Secret được cá nhân hóa của mình. Những thông tin này rất cần thiết khi truy cập API. Dưới đây là thông tin chi tiết về cách thêm hình mờ văn bản vào tài liệu PDF hiện có bằng Java

  • Đầu tiên, bạn cần chỉ định thông tin ID khách hàng và Bí mật khách hàng của mình theo hai biến.
  • Thứ hai, tạo một đối tượng của lớp PdfApi bằng cách cung cấp Client ID và Client Secret làm đối số.
  • Thứ ba, tạo một đối tượng của lớp TextState trong đó chúng ta chỉ định tên phông chữ là Arial và kích thước phông chữ là 14.
  • Bây giờ chúng ta cần tạo một thể hiện của lớp TextStamp. Khi sử dụng đối tượng này, chúng ta sẽ chỉ định HorizontalAlignment làm tâm, giá trị Text stamp, kích thước phông chữ và chi tiết kiểu phông chữ được chỉ định bằng phương thức textState(..) trong đó đối tượng TextState được tạo ở bước trên được truyền làm đối số. Chi tiết lề và VerticalAlignment cũng được chỉ định là Tâm.
  • Để hiển thị TextStamp ở chế độ nền, phương thức background(..) được sử dụng với đối số là true.
  • Ngoài ra, độ mờ đục, góc xoay, hệ số thu phóng và thụt lề XY cho con dấu cũng được chỉ định.
  • Bây giờ hãy tạo một đối tượng của lớp List với kiểu TextStamp và thêm đối tượng stamp được tạo ở trên vào danh sách này.
  • Cuối cùng, gọi phương thức postPageTextStamps(..) của PdfAPi và truyền dữ liệu đầu vào PDF, số trang và danh sách tem làm đối số để bắt đầu quy trình đóng dấu.
// Để biết ví dụ đầy đủ và mã nguồn, vui lòng truy cập https://github.com/aspose-pdf-cloud/aspose-pdf-cloud-java

// Nhận ClientID và ClientSecret từ https://dashboard.aspose.cloud/
String clientId = "29ac1517-753f-4303-b755-7185e35cf939";
String clientSecret = "c537caf71eafc8a75a5ee7813b703276";
				
String sourceFileName = "PdfWithTable.pdf";
int pageNumber = 1;
String cloudStorage = "";
String folder = "";

// tạo một phiên bản của PdfApi bằng cách sử dụng thông tin chi tiết về Client ID và Client Secret
com.aspose.asposecloudpdf.api.PdfApi pdfApi = new com.aspose.asposecloudpdf.api.PdfApi(clientSecret,clientId);

// tạo một đối tượng của TextState và chỉ định chi tiết định dạng phông chữ
com.aspose.asposecloudpdf.model.TextState textState = new com.aspose.asposecloudpdf.model.TextState().fontSize(24.).font("Arial");

com.aspose.asposecloudpdf.model.TextStamp stamp = new com.aspose.asposecloudpdf.model.TextStamp()
       	.textAlignment(com.aspose.asposecloudpdf.model.HorizontalAlignment.CENTER)
  	.value("Text Stamp")
	.textState(textState)
	.leftMargin(1.)
	.rightMargin(2.)
	.topMargin(3.)
	.bottomMargin(4.)
	.verticalAlignment(com.aspose.asposecloudpdf.model.VerticalAlignment.CENTER);
 
	stamp.background(true)
	.horizontalAlignment(com.aspose.asposecloudpdf.model.HorizontalAlignment.CENTER)
	.opacity(1.)
	.rotate(com.aspose.asposecloudpdf.model.Rotation.ON90)
	.rotateAngle(45.)
	.xindent(0.)
	.yindent(0.)
	.zoom(1.);
        
// tạo một đối tượng List với kiểu TextStamp
List<com.aspose.asposecloudpdf.model.TextStamp> stamps = new ArrayList<>();

// thêm trường hợp TextStamp vào danh sách TextStamp
stamps.add(stamp);

// gọi phương thức để postTextStamp vào trang đầu tiên của tệp PDF
com.aspose.asposecloudpdf.model.AsposeResponse response = pdfApi.postPageTextStamps(sourceFileName, pageNumber, stamps,cloudStorage, folder);
TextStamp đã được thêm vào PDF

Hình ảnh 1: - Đã thêm dấu văn bản vào tài liệu PDF.

Các tệp mẫu được sử dụng trong ví dụ trên có thể được tải xuống từ các liên kết sau:

Cách thêm hình mờ hình ảnh vào PDF bằng Java

Với ít dòng mã hơn, bạn có thể dễ dàng thêm hình mờ hình ảnh vào tài liệu PDF. Dưới đây là các bước về cách bạn có thể thêm hình ảnh JPEG vào tệp PDF.

  • Đầu tiên, bước này là tạo một đối tượng PdfApi trong khi truyền ClientSecret và ClientID làm đối số.
  • Bước tiếp theo là tạo đối tượng ImageStamp, trong đó chúng ta định nghĩa tệp hình ảnh cần đóng dấu, chi tiết lề và VerticalAlignment. Trong trường hợp của chúng ta, chúng ta đã chọn giá trị Center từ phép liệt kê VerticalAlignment.
  • Đặt ImageStamp.background(True) để hình ảnh xuất hiện phía sau nội dung trên trang. Nếu không, nó sẽ xuất hiện ở trên cùng của nội dung trang.
  • Tạo một đối tượng List kiểu ImageStamp và thêm đối tượng ImageStamp được tạo ở bước thứ hai vào bộ sưu tập này.
  • Cuối cùng, gọi phương thức postPageImageStamps(…) của lớp PdfApi, trong đó chúng ta truyền dữ liệu PDF đầu vào, số trang làm hình mờ và danh sách ImageStamp được tạo ở trên làm đối số.
  • Tệp PDF có hình mờ được lưu trên cùng một bộ nhớ đám mây. Bản xem trước của tệp kết quả được hiển thị bên dưới.
// Để biết ví dụ đầy đủ và mã nguồn, vui lòng truy cập https://github.com/aspose-pdf-cloud/aspose-pdf-cloud-java

// Nhận ClientID và ClientSecret từ https://dashboard.aspose.cloud/
String clientId = "c235e685-1aab-4cda-a95b-54afd63eb87f";
String clientSecret = "b8da4ee37494f2ef8da3c727f3a0acb9";

// tạo một phiên bản của PdfApii
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// nhập tài liệu PDF
String file = "PdfWithTable.pdf";
// Hình ảnh nguồn được sử dụng làm hình mờ
String image = "Koala.jpg";
// số trang nơi sẽ thêm hình mờ
int pageNumber = 1;

// tạo một thể hiện của đối tượng ImageStamp
ImageStamp stampObject = new ImageStamp()
	.fileName(image)
	.leftMargin(1.)
	.rightMargin(2.)
	.topMargin(3.)
	.bottomMargin(214.)
	.verticalAlignment(com.aspose.asposecloudpdf.model.VerticalAlignment.CENTER);
	
	// thêm hình mờ phía sau nội dung trang
	stampObject.background(true)
	.horizontalAlignment(com.aspose.asposecloudpdf.model.HorizontalAlignment.CENTER)
	.opacity(1.)
	.rotate(com.aspose.asposecloudpdf.model.Rotation.NONE)
	.rotateAngle(0.)
	.xindent(0.)
	.yindent(0.)
	.zoom(0.2);

// tạo danh sách đối tượng ImageStamp
List<com.aspose.asposecloudpdf.model.ImageStamp> stamps = new ArrayList<>();

// Thêm ImageStamp vào danh sách ImageStamp
stamps.add(stampObject);

// gọi phương thức API để thêm hình ảnh mờ vào PDF
AsposeResponse response = pdfApi.postPageImageStamps(file, pageNumber, stamps,null, null);
Đã thêm tem hình ảnh vào PDF

Hình ảnh 2: - Thêm hình ảnh đóng dấu vào tài liệu PDF.

Các tệp mẫu được sử dụng trong ví dụ trên có thể được tải xuống từ liên kết sau.

Thêm trang PDF làm tem hình mờ

Ngoài Văn bản và Hình ảnh, trang PDF cũng có thể được thêm vào dưới dạng hình mờ vào tài liệu PDF hiện có. Dưới đây là các bước thực hiện các yêu cầu này.

  • Trước hết, tạo một đối tượng của lớp PdfApi trong khi truyền Client ID và Client Secret làm đối số.
  • Thứ hai, tạo một thể hiện của lớp PdfPageStamp. Lớp này được sử dụng để chỉ định đường dẫn của tài liệu PDF trong khi sẽ được sử dụng cho hình mờ.
  • Phương thức PdfPageStamp.pageIndex(..) được sử dụng để chỉ định số trang của tệp PDF sẽ được sử dụng làm hình mờ.
  • Trong số các phương pháp khác, background(..) rất quan trọng vì nó được dùng để đặt hình mờ phía sau nội dung PDF hoặc giữ hình mờ trên nội dung.
  • Sau đó, tạo một Danh sách kiểu PdfPageStamp và thêm đối tượng PdfPageStamp đã tạo ở trên vào bộ sưu tập Danh sách.
  • Cuối cùng, gọi phương thức postPagePdfPageStamps(…) của lớp PdfApi, trong đó chúng ta truyền tệp PDF nguồn, chỉ mục trang cần đóng dấu và Danh sách PdfPageStamp làm đối số. Đầu ra kết quả được lưu trên bộ nhớ đám mây.
// Để biết ví dụ đầy đủ và mã nguồn, vui lòng truy cập https://github.com/aspose-pdf-cloud/aspose-pdf-cloud-java

// Nhận ClientID và ClientSecret từ https://cloud.aspose.com
String clientId = "c235e685-1aab-4cda-a95b-54afd63eb87f";
String clientSecret = "b8da4ee37494f2ef8da3c727f3a0acb9";

// tạo phiên bản PdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// nhập tài liệu PDF
String sourcePDF = "PdfWithAnnotations.pdf";

// Nguồn PDF được sử dụng để làm hình mờ
String stampPDF = "rusdoc.pdf";

// số trang nơi sẽ thêm hình mờ
int pageNumber = 1;

// tạo một thể hiện của đối tượng PdfPageStamp
PdfPageStamp stampObject = new PdfPageStamp()
	// Tệp PDF được sử dụng làm hình mờ
  	.fileName(stampPDF)
	// chỉ định chỉ mục trang mà bạn muốn thêm làm hình mờ
	.pageIndex(1)
	.leftMargin(150.)
	.rightMargin(2.)
	
	// chúng tôi đã thiết lập lề trên -ve để di chuyển lên PDF hình mờ
	.topMargin(-330.)
	.bottomMargin(414.)
	
  	// đặt căn chỉnh theo chiều dọc của hình mờ là Trên cùng
	.verticalAlignment(com.aspose.asposecloudpdf.model.VerticalAlignment.TOP);
	
  	// đưa hình mờ lên phía trước/có thể nhìn thấy
	stampObject.background(false)
	.horizontalAlignment(com.aspose.asposecloudpdf.model.HorizontalAlignment.CENTER)
	.opacity(1.)
	.rotate(com.aspose.asposecloudpdf.model.Rotation.NONE)
	.rotateAngle(0.)
	.xindent(0.)
	.yindent(0.)
	
  	// đặt hệ số thu phóng là 0,7 để nó bị nén lại thay vì xuất hiện ở mức 100%
	.zoom(0.7);

// tạo danh sách đối tượng PdfPageStamp
List<com.aspose.asposecloudpdf.model.PdfPageStamp> stamps = new ArrayList<>();
	
// Thêm PdfPageStamp vào danh sách ImageStamps
stamps.add(stampObject);
	
// gọi phương thức API để thêm PDF làm hình mờ
AsposeResponse response = pdfApi.postPagePdfPageStamps(sourcePDF, pageNumber, stamps,null, null);
Tệp PDF làm hình mờ

Hình ảnh 3: - Xem trước tệp PDF được thêm vào làm hình mờ.

Các tệp mẫu được sử dụng trong ví dụ trên có thể được tải xuống từ các liên kết sau

Thêm số trang làm hình mờ

Chi tiết số trang rất quan trọng khi xét về mặt khả năng sử dụng vì chúng cung cấp cho người đọc thông tin rõ ràng về độ dài của tài liệu cũng như trang mà người đọc đang xem.

  • Sau khi tạo xong phiên bản PdfApi, hãy tạo đối tượng của lớp PageNumberStamp.
  • sử dụng phương thức value(…) của lớp PageNumberStamp để chỉ định mẫu cho dấu PageNumber.
  • Một phương pháp quan trọng khác là setStartingNumber(..) để chỉ ra số lượng mà hình mờ Số trang sẽ bắt đầu.
  • Các đoạn mã khác bao gồm thông tin chi tiết về lề, độ mờ, góc xoay, hệ số oom, v.v. đều giống như các đoạn mã trên.
  • Chúng ta cần chỉ định startPageNumber và endPageNumber nơi sẽ đặt hình mờ Số trang.
  • Cuối cùng, gọi postDocumentPageNumberStamps(…) lấy tệp PDF đầu vào, đối tượng PageNumberStamp, thông tin trang Bắt đầu và Kết thúc làm đối số và thêm hình mờ Số trang vào tệp nguồn.
// Để biết ví dụ đầy đủ và mã nguồn, vui lòng truy cập https://github.com/aspose-pdf-cloud/aspose-pdf-cloud-java

// Nhận ClientID và ClientSecret từ https://dashboard.aspose.cloud/
String clientId = "c235e685-1aab-4cda-a95b-54afd63eb87f";
String clientSecret = "b8da4ee37494f2ef8da3c727f3a0acb9";
				
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// nhập tài liệu PDF
String sourcePDF = "PdfWithTable.pdf";

// tạo một thể hiện của đối tượng PdfPageStamp
PageNumberStamp stampObject = new PageNumberStamp()

	// Định dạng cho hình mờ số trang
  	.value("Page #")
	.leftMargin(1.)
	.rightMargin(2.)
	.topMargin(3.)
	.bottomMargin(4.)
	
	// đặt căn chỉnh theo chiều dọc của hình mờ là Dưới cùng
	.verticalAlignment(com.aspose.asposecloudpdf.model.VerticalAlignment.BOTTOM);
	
	// chỉ định số bắt đầu cho bộ đếm
	stampObject.setStartingNumber(3);

	// đưa hình mờ lên phía trước/có thể nhìn thấy
	stampObject.background(false)
	
	.horizontalAlignment(com.aspose.asposecloudpdf.model.HorizontalAlignment.CENTER)
	.opacity(1.)
	.rotate(com.aspose.asposecloudpdf.model.Rotation.NONE)
	.rotateAngle(0.)
	.xindent(0.)
	.yindent(0.)
	.zoom(1.0);

// trang bắt đầu hình thức nơi để đặt hình mờ
int startPageNumber = 2;
	
// chỉ mục trang mà hình mờ sẽ được đặt vào
int endPageNumber = 3;
	
// gọi phương thức API để thêm PDF làm hình mờ
AsposeResponse response = pdfApi.postDocumentPageNumberStamps(sourcePDF, stampObject,startPageNumber, endPageNumber, null, null);
Con dấu số trang trong PDF

Hình ảnh 4: - Xem trước Số trang dưới dạng hình mờ trong PDF.

Các tệp mẫu được sử dụng trong ví dụ trên có thể được tải xuống từ liên kết sau:

Mẹo nhanh

Aspose.PDF Cloud SDK for Java mạnh mẽ đến mức chỉ với một vài dòng mã, bạn có thể chuyển đổi các định dạng JPEG, EPUB, LaTeX, HTML, PS, XSLFo, XPS, SVG, DOCX, PCL sang định dạng PDF. Để biết thêm thông tin, vui lòng truy cập trang sản phẩm.

Phần kết luận

Trong bài đăng trên blog này, chúng ta đã tìm hiểu về các bước về cách chúng ta có thể dễ dàng thêm thông tin Văn bản, Hình ảnh, PDF và Số trang vào các tài liệu PDF hiện có bằng cách sử dụng Aspose.PDF Cloud SDK cho Java. Xin lưu ý rằng Cloud SDK của chúng tôi là mã nguồn mở và bạn cũng có thể tải xuống toàn bộ mã nguồn của chúng và sửa đổi theo yêu cầu của mình. Toàn bộ mã nguồn có thể được tải xuống từ kho lưu trữ GitHub. Nếu bạn có bất kỳ thắc mắc liên quan nào, vui lòng liên hệ qua diễn đàn hỗ trợ miễn phí.