Нежелательные водяные знаки на изображениях могут делать документы PDF выглядеть непрофессионально и препятствовать дальнейшей обработке. GroupDocs.Watermark Cloud SDK for Java предлагает мощный API, который позволяет разработчикам Java программно удалять эти водяные знаки из PDF‑файлов. В этом руководстве показано, как удалить изображение‑водяной знак из PDF на Java с помощью конечной точки удаления SDK. К концу вы сможете интегрировать автоматическое удаление водяных знаков в любое Java‑приложение.
Среда разработки Java - Предварительные требования и настройка
Прежде чем начать, убедитесь, что у вас есть следующее:
- Установлен Java 17 или более новая версия.
- Maven или Gradle для управления зависимостями.
- Учётная запись GroupDocs Cloud с client ID и client secret.
Добавьте SDK в ваш проект, используя зависимость Maven ниже (вы также можете использовать эквивалент Gradle). Последние бинарные файлы доступны на странице загрузки.
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-watermark-cloud</artifactId>
<version>23.8</version>
</dependency>
Инициализируйте клиент API, используя ваши учетные данные. Этот фрагмент кода взят непосредственно из примера.
ApiClient apiClient = new ApiClient("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");
WatermarkApi watermarkApi = new WatermarkApi(apiClient);
С готовым клиентом вы можете перейти к фактическому процессу удаления.
Пошаговое руководство по удалению графического водяного знака из PDF в Java
Шаг 1: Загрузить исходный документ
Сначала укажите PDF, который нужно очистить. Объект FileInfo сообщает API, где находится файл, и при необходимости предоставляет пароль.
FileInfo inputFile = new FileInfo();
inputFile.setFilePath("input.pdf");
// inputFile.setPassword("pdfPassword"); // Uncomment if needed
Шаг 2: Определите критерии водяного знака изображения
Создайте ImageSearchCriteria, указывающий на изображение водяного знака, которое вы хотите удалить. Это является основной частью операции удалить изображение водяного знака из PDF на Java.
ImageSearchCriteria imageCriteria = new ImageSearchCriteria();
imageCriteria.setImagePath("watermark.png");
Шаг 3: Настройка параметров удаления
Объедините информацию о файле и критерии поиска в объект RemoveOptions. Вы также определяете, где будет сохранён очищенный PDF.
RemoveOptions removeOptions = new RemoveOptions();
removeOptions.setFileInfo(inputFile);
removeOptions.setOutputPath("output.pdf");
removeOptions.setSearchCriteria(Collections.singletonList(imageCriteria));
Шаг 4: Выполнить вызов удаления
Вызовите метод remove у WatermarkApi. Вызов возвращает RemoveResult, который содержит путь к обработанному файлу.
RemoveResult result = watermarkApi.remove(removeOptions);
System.out.println("Watermark removal completed. Output file: " + result.getPath());
Шаг 5: Обработать результат
Обрабатывайте любые возникающие исключения. SDK генерирует ApiException для ошибок со стороны сервиса и общее Exception для неожиданных проблем.
try {
// removal code above
} catch (ApiException e) {
System.err.println("API exception occurred: " + e.getMessage());
} catch (Exception e) {
System.err.println("Unexpected error: " + e.getMessage());
}
Полный пример кода: удаление водяного знака изображения с помощью GroupDocs
Следующий пример демонстрирует полный рабочий процесс от инициализации клиента до обработки результата.
import com.groupdocs.watermark.cloud.api.WatermarkApi;
import com.groupdocs.watermark.cloud.client.ApiClient;
import com.groupdocs.watermark.cloud.client.ApiException;
import com.groupdocs.watermark.cloud.model.FileInfo;
import com.groupdocs.watermark.cloud.model.ImageSearchCriteria;
import com.groupdocs.watermark.cloud.model.RemoveOptions;
import com.groupdocs.watermark.cloud.model.RemoveResult;
import java.util.Collections;
public class RemoveImageWatermarkFromPdf {
public static void main(String[] args) {
// Initialize API client with your credentials
ApiClient apiClient = new ApiClient("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");
WatermarkApi watermarkApi = new WatermarkApi(apiClient);
// Prepare input file information
FileInfo inputFile = new FileInfo();
inputFile.setFilePath("input.pdf");
// If the PDF is password protected, uncomment the following line and set the password
// inputFile.setPassword("pdfPassword");
// Define the image watermark to be removed
ImageSearchCriteria imageCriteria = new ImageSearchCriteria();
imageCriteria.setImagePath("watermark.png");
// Set up removal options
RemoveOptions removeOptions = new RemoveOptions();
removeOptions.setFileInfo(inputFile);
removeOptions.setOutputPath("output.pdf");
removeOptions.setSearchCriteria(Collections.singletonList(imageCriteria));
try {
// Execute removal
RemoveResult result = watermarkApi.remove(removeOptions);
System.out.println("Watermark removal completed. Output file: " + result.getPath());
} catch (ApiException e) {
System.err.println("API exception occurred: " + e.getMessage());
} catch (Exception e) {
System.err.println("Unexpected error: " + e.getMessage());
}
}
}
Примечание: Этот пример кода демонстрирует базовую функциональность. Прежде чем использовать его в вашем проекте, убедитесь, что обновили все пути к файлам и значения конфигурации в соответствии с вашей реальной средой, проверьте, что все необходимые зависимости правильно установлены, и тщательно протестируйте в вашей среде разработки. Если вы столкнётесь с какими‑либо проблемами, обратитесь к официальной документации или свяжитесь с командой поддержки для получения помощи.
Операция удаления водяного знака через REST API с использованием cURL
Если вы предпочитаете чистый REST‑подход, то ту же операцию можно выполнить с помощью команд cURL.
- Аутентифицируйтесь и получите токен доступа
curl -X POST "https://api.groupdocs.cloud/v2.0/auth/token" \
-H "Content-Type: application/json" \
-d '{"client_id":"YOUR_CLIENT_ID","client_secret":"YOUR_CLIENT_SECRET"}'
- Загрузите исходный PDF
curl -X POST "https://api.groupdocs.cloud/v2.0/storage/upload?path=input.pdf" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@/local/path/input.pdf"
- Выполнить удаление водяного знака
curl -X POST "https://api.groupdocs.cloud/v2.0/watermark/remove" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"fileInfo": {"filePath":"input.pdf"},
"outputPath":"output.pdf",
"searchCriteria":[{"type":"Image","imagePath":"watermark.png"}]
}'
- Скачать очищенный PDF
curl -X GET "https://api.groupdocs.cloud/v2.0/storage/download?path=output.pdf" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o output.pdf
Для полного справочника см. документацию API.
Параметры удаления настройки
SDK предоставляет несколько свойств, которые вы можете настроить в соответствии с различными сценариями.
- Защита паролем - Если исходный PDF зашифрован, установите пароль в
FileInfo.
inputFile.setPassword("mySecret");
- Несколько критериев поиска - Удалите несколько водяных знаков за один вызов, добавив больше объектов
ImageSearchCriteriaв список.
ImageSearchCriteria logoCriteria = new ImageSearchCriteria();
logoCriteria.setImagePath("logo.png");
removeOptions.setSearchCriteria(Arrays.asList(imageCriteria, logoCriteria));
- Output Format - Хотя по умолчанию используется PDF, вы можете изменить формат вывода, задав
outputPathс другим расширением (например,output.docx).
removeOptions.setOutputPath("output.docx");
Эти параметры позволяют вам настроить процесс удаления изображения водяного знака из PDF в Java в соответствии с вашими точными потребностями.
Заключение
Программное удаление водяного знака‑изображения из PDF‑файлов простое с помощью GroupDocs.Watermark Cloud SDK for Java. Следуя приведённым выше шагам, вы можете интегрировать удаление водяных знаков в любой Java‑бэкенд, работать с зашифрованными PDF и точно настраивать процесс с помощью гибких параметров. Не забудьте получить соответствующую лицензию для использования в продакшене; детали ценообразования доступны на странице продукта, а временную лицензию можно запросить через страницу временной лицензии. Начните очищать свои PDF‑файлы уже сегодня и предоставляйте пользователям отшлифованные документы.
FAQs
Как удалить изображение водяного знака из PDF на Java?
Используйте методremoveклассаWatermarkApiсImageSearchCriteria, указывающим на изображение водяного знака. Полный пример кода в этой статье показывает точные шаги.Что делать, если мой PDF защищён паролем?
Установите пароль для объектаFileInfo(inputFile.setPassword("yourPassword")) перед вызовом API удаления. SDK автоматически расшифрует, обработает и заново зашифрует файл.Могу ли я удалить водяные знаки из других форматов, таких как DOCX?
Да. Тот же API работает с любым форматом, поддерживаемым GroupDocs.Watermark. Просто измените расширенияfilePathиoutputPathсоответственно.Есть ли ограничения на размер PDF, который я могу обработать?
Облачный сервис обрабатывает файлы размером до 500 МБ за запрос. Для более крупных документов рекомендуется разбить PDF на более мелкие части перед обработкой.
