Удалить водяные знаки из PDF-документов с помощью Java

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

В этой статье обсуждаются/рассматриваются следующие темы:

Java API для удаления водяных знаков

Я буду использовать API GroupDocs.Watermark for Java для удаления водяных знаков из документов PDF. Это позволяет выполнять операции водяных знаков изображения и текста. Он также позволяет применять новые водяные знаки, искать и удалять существующие водяные знаки в файлах поддерживаемых форматов, таких как Word, Excel, Powerpoint и PDF.

Вы можете загрузить JAR API или просто добавить следующую конфигурацию pom.xml в свои Java-приложения на основе Maven, чтобы попробовать приведенные ниже примеры кода.

<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>

Удалить все водяные знаки из PDF с помощью Java

Вы можете легко удалить все водяные знаки из ваших PDF-документов, выполнив простые шаги, указанные ниже:

  • Создайте экземпляр класса Водяной знак.
  • Укажите путь к входному файлу PDF
  • Заполните PossibleWatermarkCollection, вызвав метод search().
  • Вызовите метод clear(), чтобы удалить все водяные знаки.
  • Сохраните обновленный файл

В следующем примере кода показано, как удалить все водяные знаки, доступные в документе PDF, с помощью Java.

// Создать экземпляр
Watermarker watermarker = new Watermarker("C:\\Files\\sample.pdf");

// Искать все возможные водяные знаки
PossibleWatermarkCollection possibleWatermarks = watermarker.search();

// Удалить все найденные водяные знаки
possibleWatermarks.clear();

// Сохранить обновленный файл
watermarker.save("C:\\Files\\output.pdf");

watermarker.close();
Удалить все водяные знаки из PDF с помощью Java

Удалить все водяные знаки из PDF с помощью Java

Класс Watermarker упрощает добавление, удаление и поиск водяных знаков в документе.

Класс PossibleWatermarkCollection представляет набор возможных водяных знаков, найденных в содержимом.

Метод search() класса Watermarker выполняет поиск всех возможных водяных знаков в документе. Он возвращает набор результатов как PossibleWatermarkCollection.

Удаление текстовых водяных знаков из PDF с использованием Java

Вы можете легко удалить все текстовые водяные знаки из ваших PDF-документов, выполнив простые шаги, указанные ниже:

  • Создайте экземпляр класса Водяной знак.
  • Укажите путь к входному файлу PDF
  • Заполните PossibleWatermarkCollection, вызвав метод search().
  • Проверьте, не является ли getText() нулевым или пустым для всех возможных водяных знаков.
  • Затем передайте индекс методу removeAt(), чтобы удалить его.
  • Сохраните обновленный файл

В следующем примере кода показано, как удалить только текстовые водяные знаки, доступные в документе PDF, с помощью Java.

// Создать экземпляр
Watermarker watermarker = new Watermarker("C:\\Files\\sample.pdf");

// Искать все возможные водяные знаки
PossibleWatermarkCollection possibleWatermarks = watermarker.search();

// Удалить все найденные водяные знаки
for (int i = possibleWatermarks.getCount() - 1; i >= 0; i--)
{
  if(possibleWatermarks.get_Item(i).getText() != null && possibleWatermarks.get_Item(i).getText() != "")
  {
    possibleWatermarks.removeAt(i);
  }
}

// Сохранить обновленный документ
watermarker.save("C:\\Files\\output.pdf");

watermarker.close();
Удаление текстовых водяных знаков из PDF с использованием Java

Удаление текстовых водяных знаков из PDF с использованием Java

Метод removeAt() удаляет элемент по указанному индексу из PossibleWatermarksCollection.

Удалить водяные знаки с определенным форматированием текста

Вы можете удалить текстовые водяные знаки, доступные с определенным форматированием, из ваших PDF-документов, выполнив простые шаги, указанные ниже:

В следующем примере кода показано, как удалить текстовые водяные знаки с определенным форматированием текста из документа PDF с помощью Java.

// Создать экземпляр
Watermarker watermarker = new Watermarker("C:\\Files\\sample.pdf");

// Определение критериев поиска форматирования текста
TextFormattingSearchCriteria criteria = new TextFormattingSearchCriteria();
criteria.setFontName("Arial");
criteria.setMinFontSize(19);
criteria.setMaxFontSize(42);
criteria.setFontBold(false);

// Поиск возможных водяных знаков
PossibleWatermarkCollection watermarks = watermarker.search(criteria);
watermarks.clear();

// Сохранить обновленный документ
watermarker.save("C:\\Files\\output.pdf");

watermarker.close();
Удалить водяные знаки с определенным форматированием текста

Удалить водяные знаки с определенным форматированием текста

Удаление водяных знаков только изображения из PDF с использованием Java

Вы можете легко удалить все водяные знаки только с изображениями из ваших PDF-документов, выполнив простые шаги, указанные ниже:

  • Создайте экземпляр класса Водяной знак.
  • Укажите путь к входному файлу PDF
  • Заполните PossibleWatermarkCollection, вызвав метод search().
  • Проверьте, не является ли getImageData() нулевым значением для всех возможных водяных знаков.
  • Затем передайте индекс методу removeAt(), чтобы удалить его.
  • Сохраните обновленный файл

В следующем примере кода показано, как удалить только водяные знаки изображения, доступные в документе PDF, с помощью Java.

// Создать экземпляр
Watermarker watermarker = new Watermarker("C:\\Files\\sample.pdf");

// Искать все возможные водяные знаки
PossibleWatermarkCollection possibleWatermarks = watermarker.search();

// Удалить все водяные знаки изображения
for (int i = possibleWatermarks.getCount() - 1; i >= 0; i--)
{
  if(possibleWatermarks.get_Item(i).getImageData() != null)
  {
    possibleWatermarks.removeAt(i);
  }
}

// Сохранить обновленный документ
watermarker.save("C:\\Files\\output.pdf");

watermarker.close();
Удаление водяных знаков только изображения из PDF с использованием Java

Удаление водяных знаков только изображения из PDF с использованием Java

Получить бесплатную лицензию

Вы можете попробовать API без ограничений на пробную версию, запросив бесплатную временную лицензию.

Вывод

В этой статье вы узнали, как удалить текстовые или графические водяные знаки из документа PDF с помощью Java. Кроме того, вы узнали, как удалять из документов водяные знаки, состоящие только из текста или изображения. Вы можете узнать больше о GroupDocs.Watermark для Java API, используя документацию. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.

Смотрите также