Bài viết này hữu ích cho các nhà phát triển Java đang tìm cách tìm và xóa hình mờ văn bản hoặc hình ảnh khỏi tài liệu PDF, Word, Excel, PowerPoint và Visio. Trong một trong những bài đăng của chúng tôi, chúng tôi đã học tìm và xóa hình mờ khỏi tài liệu trong C#. Bây giờ chúng ta hãy xem nhanh một chút về API Java cho phép thêm, tìm và xóa hình mờ khỏi các tài liệu khác nhau theo những cách khác nhau.

API Java cho Watermarking và Loại bỏ

GroupDocs.Watermark for Java API hỗ trợ thêm hình mờ văn bản và hình ảnh vào nhiều định dạng tài liệu. Ngoài ra, nó còn có khả năng tìm và xóa hình mờ khỏi tài liệu. API cũng tìm thấy các đối tượng hình mờ được thêm bằng các công cụ của bên thứ ba. Vì vậy, hãy để tôi trình bày cách bạn có thể xóa hình mờ khỏi tài liệu trong một vài bước trong Java.

Bạn có thể lấy JAR từ phần tải xuống hoặc thêm cấu hình sau vào tệp pom.xml của ứng dụng Java dựa trên Maven của bạn. Để biết chi tiết về API, hãy truy cập Tham khảo API.

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-watermark</artifactId>
        <version>20.5</version> 
</dependency>

Các bước để xóa hình mờ khỏi tài liệu trong Java

Trước khi bắt đầu, hãy xem tài liệu PDF sau đây có chứa hình mờ văn bản cũng như hình mờ hình ảnh. Chúng tôi sẽ sử dụng tài liệu này và xóa các hình mờ khỏi nó.

Tệp PDF có hình mờ - GroupDocs
  1. Tạo một dự án mới.

  2. Thêm các lần nhập sau.

import com.groupdocs.watermark.Watermarker;
import com.groupdocs.watermark.search.ImageDctHashSearchCriteria;
import com.groupdocs.watermark.search.ImageSearchCriteria;
import com.groupdocs.watermark.search.PossibleWatermarkCollection;
import com.groupdocs.watermark.search.SearchCriteria;
import com.groupdocs.watermark.search.TextSearchCriteria;
  1. Tạo một thể hiện của lớp Watermarker và tải tài liệu nguồn.
Watermarker watermarker = new Watermarker("filepath/watermarked.pdf");
  1. Tìm hình mờ dựa trên tiêu chí tìm kiếm đã định cấu hình bằng phương pháp tìm kiếm.
// Định cấu hình tiêu chí tìm kiếm cho hình mờ hình ảnh
ImageSearchCriteria imageSearchCriteria = new ImageDctHashSearchCriteria("filepath/watermark.png");
imageSearchCriteria.setMaxDifference(0.2); // Set how much the watermark can differ from the provided image.

// Định cấu hình tiêu chí tìm kiếm cho hình mờ văn bản
TextSearchCriteria textSearchCriteria = new TextSearchCriteria("CONFIDENTIAL");

// Kết hợp các tiêu chí tìm kiếm văn bản và hình ảnh
SearchCriteria combinedSearchCriteria = imageSearchCriteria.or(textSearchCriteria);
PossibleWatermarkCollection possibleWatermarks = watermarker.search(combinedSearchCriteria);
  1. Lặp lại bộ sưu tập hình mờ và loại bỏ hình mờ bằng phương pháp removeAt.
//Lặp lại qua bộ sưu tập hình mờ có thể, kiểm tra và xóa hình mờ
while(possibleWatermarks.getCount()>0)
{
	if (possibleWatermarks.get_Item(0).getImageData() != null)
	{
		possibleWatermarks.removeAt(0);
		System.out.println("Removed Image Watermark.");
	}
	else
	{
		possibleWatermarks.removeAt(0);
		System.out.println("Removed Text Watermark.");
	}
} 
  1. Lưu tài liệu kết quả bằng phương thức lưu.
 watermarker.save("filepath/without_watermark.pdf");
 watermarker.close(); 

Ngoài ra còn có một số cách khác để tìm và xóa hình mờ khỏi tài liệu bằng các phương pháp khác nhau. Nếu bạn muốn xóa tất cả hình mờ của tài liệu hoặc muốn loại bỏ một số hình mờ có chọn lọc thuộc nhiều loại khác nhau:

  • Bạn có thể thu thập tất cả các hình mờ có thể.
  • Lặp lại bộ sưu tập hình mờ hoặc truy cập trực tiếp vào hình mờ bằng chỉ mục.
  • Kiểm tra loại hình mờ và dữ liệu, nếu cần.
  • Loại bỏ nó, nếu nó đáp ứng yêu cầu của bạn.

remove, removeAt và clear là các phương pháp có thể được sử dụng tương ứng để loại bỏ hình mờ. Để biết thêm chi tiết, bạn có thể truy cập bài viết tài liệu về tìm kiếm và sửa đổi hình mờ trong Java.

Hoàn thành mã

// Tìm và xóa Hình mờ khỏi tài liệu PDF, Word, Excel, PowerPoint và Visio trong Java
Watermarker watermarker = new Watermarker("filepath/watermarked.pdf"); // Provide any supported document

// Định cấu hình tiêu chí tìm kiếm cho hình mờ hình ảnh
ImageSearchCriteria imageSearchCriteria = new ImageDctHashSearchCriteria("filepath/watermark.png");
imageSearchCriteria.setMaxDifference(0.2); // Set how much the watermark can differ from the provided image.

// Định cấu hình tiêu chí tìm kiếm cho hình mờ văn bản
TextSearchCriteria textSearchCriteria = new TextSearchCriteria("CONFIDENTIAL");

// Kết hợp các tiêu chí tìm kiếm văn bản và hình ảnh
SearchCriteria combinedSearchCriteria = imageSearchCriteria.or(textSearchCriteria);
PossibleWatermarkCollection possibleWatermarks = watermarker.search(combinedSearchCriteria);

//Lặp lại qua bộ sưu tập hình mờ có thể, kiểm tra và xóa hình mờ
while(possibleWatermarks.getCount()>0)
{
	if (possibleWatermarks.get_Item(0).getImageData() != null)
	{
		possibleWatermarks.removeAt(0);
		System.out.println("Removed Image Watermark.");
	}
	else
	{
		possibleWatermarks.removeAt(0);
		System.out.println("Removed Text Watermark.");
	}
} 
watermarker.save("filepath/without_watermark.pdf");
watermarker.close(); 

Kết quả

Sau đây là ảnh chụp màn hình của tài liệu PDF kết quả mà chúng tôi nhận được sau khi xóa hình mờ.

Tệp PDF kết quả sau khi xóa hình mờ bằng cách sử dụng API Watermarking Java của GroupDocs

Sự kết luận

Tôi tin rằng, với tư cách là một nhà phát triển Java, bạn sẽ không còn ngần ngại tìm và sau đó xóa bất kỳ loại hình mờ nào khỏi các tài liệu xử lý văn bản, bảng tính, bản trình bày, tài liệu PDF và bản vẽ Visio được Microsoft và OpenOffice hỗ trợ.

Bạn có thể khám phá thêm về API từ tài liệu. Trong trường hợp có bất kỳ thắc mắc nào, hãy liên hệ với chúng tôi @ forum.

Xem thêm