Изображение или текст водяного знака используются для идентификации автора документа или информации об авторских правах. Вы можете обнаружить все доступные водяные знаки в документе, а затем удалить их. Как разработчик Java, вы можете легко программно удалять водяные знаки из документов. В этой статье вы узнаете, как удалить водяные знаки из PDF-документов с помощью Java.
В этой статье обсуждаются/рассматриваются следующие темы:
- Java API для удаления водяных знаков
- Удалить все водяные знаки из PDF с помощью Java
- Удаление текстовых водяных знаков из PDF с использованием 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();
Класс 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();
Метод removeAt() удаляет элемент по указанному индексу из PossibleWatermarksCollection.
Удалить водяные знаки с определенным форматированием текста
Вы можете удалить текстовые водяные знаки, доступные с определенным форматированием, из ваших PDF-документов, выполнив простые шаги, указанные ниже:
- Создайте экземпляр класса Водяной знак.
- Укажите путь к входному файлу PDF
- Определите TextFormattingSearchCriteria
- Заполните PossibleWatermarkCollection, вызвав метод search().
- Вызовите метод clear() для удаления всех найденных водяных знаков.
- Сохраните обновленный файл
В следующем примере кода показано, как удалить текстовые водяные знаки с определенным форматированием текста из документа 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();
Получить бесплатную лицензию
Вы можете попробовать API без ограничений на пробную версию, запросив бесплатную временную лицензию.
Вывод
В этой статье вы узнали, как удалить текстовые или графические водяные знаки из документа PDF с помощью Java. Кроме того, вы узнали, как удалять из документов водяные знаки, состоящие только из текста или изображения. Вы можете узнать больше о GroupDocs.Watermark для Java API, используя документацию. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.