Рубрики
Без рубрики

Поиск и удаление водяных знаков из документов на Java

Эта статья полезна для разработчиков Java, которые ищут способ поиска и удаления текста или i… Помеченный как java, веб-разработчик.

Эта статья полезна для разработчиков Java, которые ищут способ найти и удалить текст или изображение водяные знаки из PDF , Word , Excel , PowerPoint , Visio и Электронная почта документы.

Групповые документы. Водяной знак для Java API поддерживает добавление текстовых и графических водяных знаков в широкий спектр форматов документов. Кроме того, он также имеет возможность находить и удалять водяные знаки из документов. API также находит объекты водяных знаков, добавленные с помощью сторонних инструментов. Итак, позвольте мне продемонстрировать, как вы можете удалить водяной знак из документа за несколько шагов в Java.

Прежде чем мы начнем, взгляните на следующий PDF-документ, который содержит текст, а также водяной знак изображения. Мы будем использовать этот документ и удалим с него водяные знаки.

Шаги по удалению водяных знаков из документа

1. Создайте новый проект.

2. Добавьте следующий импорт.

 import com.groupdocs.watermark.Document; 
 import com.groupdocs.watermark.ImageDctHashSearchCriteria;
 import com.groupdocs.watermark.ImageSearchCriteria; 
 import com.groupdocs.watermark.PossibleWatermarkCollection;
 import com.groupdocs.watermark.SearchCriteria;
 import com.groupdocs.watermark.TextSearchCriteria; 

3. Создайте экземпляр класса Document и загрузите исходный документ.

 Document doc =Document.load("watermarked.pdf");

4. Найдите водяные знаки на основе критериев поиска, используя метод find Watermarks (если вы не передадите никаких критериев поиска, findWatermark вернет все возможные объекты водяных знаков).

 // configure the search criteria for image watermark
 ImageSearchCriteria imageSearchCriteria =newImageDctHashSearchCriteria("watermark.png");
 // configure the search criteria for text watermark
 TextSearchCriteria textSearchCriteria =newTextSearchCriteria("CONFIDENTIAL");
 // combine the search criteria
 SearchCriteria combinedSearchCriteria = imageSearchCriteria.or(textSearchCriteria);
 // find possible watermarks
 PossibleWatermarkCollection possibleWatermarks = doc.findWatermarks(combinedSearchCriteria);

5. Выполните итерацию по коллекции водяных знаков и удалите водяные знаки с помощью метода RemoveAt .

 // iterate through the collection and remove watermarks
 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.");
    }
 } 

6. Сохраните полученный документ, используя метод save .

 doc.save("without_watermark.pdf");
 doc.close(); 

Полный Код

 Document doc =Document.load("watermarked.pdf");
 // configure the search criteria for image watermark
 ImageSearchCriteria imageSearchCriteria =newImageDctHashSearchCriteria("watermark.png");
 // configure the search criteria for text watermark
 TextSearchCriteria textSearchCriteria =newTextSearchCriteria("CONFIDENTIAL");
 // combine the search criteria
 SearchCriteria combinedSearchCriteria = imageSearchCriteria.or(textSearchCriteria);
 PossibleWatermarkCollection possibleWatermarks = doc.findWatermarks(combinedSearchCriteria);
 // iterate through the collection and remove watermarks
 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.");
    }
 }        
 doc.save("without_watermark.pdf");
 doc.close();

Результаты

Ниже приведен скриншот результирующего PDF-документа, который мы получаем после удаления водяных знаков.

Оригинал: “https://dev.to/usmanaziz/find-and-remove-watermarks-from-documents-in-java-1j2g”