Добавление визуального идентификатора к файлам PDF является важным для защиты интеллектуальной собственности и брендинга документов. GroupDocs.Watermark Cloud SDK for Java предлагает простой API для внедрения изображений‑водяных знаков непосредственно в PDF из вашего Java‑приложения. В этом руководстве вы узнаете, как добавить изображение‑водяной знак в PDF‑документы на Java, увидите полностью работающий пример и изучите эквивалентные вызовы cURL REST для облачной интеграции.
Добавьте изображение водяного знака в PDF‑документы на Java за 5 шагов
- Инициализировать клиент API: Создайте экземпляр
ApiClientс вашим идентификатором клиента и секретом.
ApiClient apiClient = new ApiClient("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");
WatermarkApi watermarkApi = new WatermarkApi(apiClient);
Этот шаг подключает ваш Java‑код к сервису GroupDocs.Watermark Cloud. См. API reference для получения дополнительных сведений.
- Укажите исходный PDF‑файл: Создайте объект
FileInfo, указывающий на PDF, который вы хотите пометить водяным знаком.
FileInfo fileInfo = new FileInfo();
fileInfo.setFilePath("input.pdf");
Файл должен быть загружен в ваше хранилище GroupDocs перед запросом.
- Настройте водяной знак изображения: определите путь к изображению, непрозрачность, коэффициент масштабирования, вращение и выравнивание.
ImageWatermark imageWatermark = new ImageWatermark();
imageWatermark.setImagePath("watermark.png");
imageWatermark.setOpacity(0.5);
imageWatermark.setScaleFactor(0.3);
imageWatermark.setHorizontalAlignment(HorizontalAlignment.CENTER);
imageWatermark.setVerticalAlignment(VerticalAlignment.CENTER);
imageWatermark.setMargin(new Margin(10, 10, 10, 10));
Отрегулируйте эти значения, чтобы достичь желаемого внешнего вида: непрозрачность управляет прозрачностью, а scaleFactor определяет размер относительно страницы.
Установите параметры водяного знака и путь вывода: Объедините информацию о файле и водяной знак в объект
WatermarkOptions.WatermarkOptions options = new WatermarkOptions(); options.setFileInfo(fileInfo); options.setImageWatermark(imageWatermark); options.setOutputPath("output.pdf");outputPathуказывает сервису, где хранить полученный PDF.Выполнить запрос: Создайте
AddWatermarkRequestи вызовите API. Обработайте успешные или ошибочные ответы.
AddWatermarkRequest request = new AddWatermarkRequest(options);
try {
AddWatermarkResponse response = watermarkApi.addWatermark(request);
System.out.println("Watermark added successfully. Output file: " + response.getPath());
} catch (Exception e) {
System.err.println("Error adding watermark: " + e.getMessage());
}
После выполнения водяной знак будет доступен в указанном вами месте.
Полный пример кода: Добавление графического водяного знака в PDF‑документы на Java
Следующий пример демонстрирует полную реализацию от инициализации клиента до сохранения PDF с водяным знаком.
import com.groupdocs.cloud.watermark.api.WatermarkApi;
import com.groupdocs.cloud.watermark.client.ApiClient;
import com.groupdocs.cloud.watermark.model.AddWatermarkRequest;
import com.groupdocs.cloud.watermark.model.AddWatermarkResponse;
import com.groupdocs.cloud.watermark.model.FileInfo;
import com.groupdocs.cloud.watermark.model.ImageWatermark;
import com.groupdocs.cloud.watermark.model.Margin;
import com.groupdocs.cloud.watermark.model.WatermarkOptions;
import com.groupdocs.cloud.watermark.model.enums.HorizontalAlignment;
import com.groupdocs.cloud.watermark.model.enums.VerticalAlignment;
public class AddImageWatermarkExample {
public static void main(String[] args) {
// Initialize API client (replace with your actual credentials)
ApiClient apiClient = new ApiClient("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");
WatermarkApi watermarkApi = new WatermarkApi(apiClient);
// Input PDF file information
FileInfo fileInfo = new FileInfo();
fileInfo.setFilePath("input.pdf");
// Image watermark configuration
ImageWatermark imageWatermark = new ImageWatermark();
imageWatermark.setImagePath("watermark.png"); // Path to watermark image
imageWatermark.setOpacity(0.5); // 50% opacity
imageWatermark.setScaleFactor(0.3); // 30% of page size
imageWatermark.setRotationAngle(0); // No rotation
imageWatermark.setHorizontalAlignment(HorizontalAlignment.CENTER);
imageWatermark.setVerticalAlignment(VerticalAlignment.CENTER);
imageWatermark.setMargin(new Margin(10, 10, 10, 10)); // 10 points margin on all sides
// Watermark options
WatermarkOptions options = new WatermarkOptions();
options.setFileInfo(fileInfo);
options.setImageWatermark(imageWatermark);
options.setOutputPath("output.pdf"); // Resulting PDF with watermark
// Create request and call API
AddWatermarkRequest request = new AddWatermarkRequest(options);
try {
AddWatermarkResponse response = watermarkApi.addWatermark(request);
System.out.println("Watermark added successfully. Output file: " + response.getPath());
} catch (Exception e) {
System.err.println("Error adding watermark: " + e.getMessage());
e.printStackTrace();
}
}
}
Примечание: Этот пример кода демонстрирует базовый функционал. Прежде чем использовать его в вашем проекте, убедитесь, что обновили пути к файлам (
input.pdf,watermark.png,output.pdf) в соответствии с вашими реальными расположениями, проверьте, что все необходимые зависимости правильно установлены, и тщательно протестируйте в вашей среде разработки. Если вы столкнётесь с какими‑либо проблемами, обратитесь к официальной документации или свяжитесь с службой поддержки для получения помощи.
Применить графический водяной знак к PDF‑документам с помощью cURL и REST API
Ниже приведены REST‑запросы, которые вы можете использовать с cURL, чтобы достичь того же результата без написания кода на Java.
- Получить токен доступа
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"}'
Ответ содержит access_token, используемый в последующих вызовах.
Загрузить исходный PDF
curl -X POST "https://api.groupdocs.cloud/v2.0/storage/upload?path=input.pdf" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -F "file=@/path/to/input.pdf"Загрузите изображение водяного знака
curl -X POST "https://api.groupdocs.cloud/v2.0/storage/upload?path=watermark.png" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -F "file=@/path/to/watermark.png"Добавить водяной знак изображения
curl -X POST "https://api.groupdocs.cloud/v2.0/watermark/add" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "fileInfo": { "filePath": "input.pdf" }, "imageWatermark": { "imagePath": "watermark.png", "opacity": 0.5, "scaleFactor": 0.3, "horizontalAlignment": "Center", "verticalAlignment": "Center", "margin": { "top": 10, "right": 10, "bottom": 10, "left": 10 } }, "outputPath": "output.pdf" }'Этот запрос повторяет логику Java‑кода, применяя те же настройки непрозрачности, масштабирования и выравнивания.
Скачать 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.
Установка и настройка GroupDocs.Watermark Cloud SDK for Java
Добавьте зависимость Maven в ваш pom.xml (или эквивалентный фрагмент Gradle). Библиотека размещена в Maven Central.
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-watermark-cloud</artifactId>
<version>23.8</version>
</dependency>
Вам также нужен действительный аккаунт GroupDocs Cloud. Получите ваш Client ID и Client Secret из GroupDocs portal. Дополнительная установка среды выполнения не требуется, поскольку SDK взаимодействует с облачным сервисом.
Тонкая настройка параметров водяного знака изображения для PDF-документов
SDK предоставляет несколько свойств, позволяющих контролировать визуальный вид водяного знака.
Настройка непрозрачности
imageWatermark.setOpacity(0.75); // 75% opacity for a more visible watermark
Значения непрозрачности варьируются от 0.0 (полностью прозрачный) до 1.0 (полностью непрозрачный).
Изменить коэффициент масштабирования
imageWatermark.setScaleFactor(0.5); // Watermark occupies 50% of the page width
Коэффициент масштабирования определяет размер водяного знака относительно размеров страницы.
Установить выравнивание и отступы
imageWatermark.setHorizontalAlignment(HorizontalAlignment.RIGHT);
imageWatermark.setVerticalAlignment(VerticalAlignment.BOTTOM);
imageWatermark.setMargin(new Margin(20, 20, 20, 20));
Эти настройки размещают водяной знак в правом нижнем углу с отступом 20 пунктов.
Для полного списка настраиваемых свойств обратитесь к справке API.
Заключение
Добавление водяного знака‑изображения в PDF‑документы на Java — простая задача, когда вы используете GroupDocs.Watermark Cloud SDK for Java. SDK обрабатывает все низкоуровневые операции с PDF, позволяя сосредоточиться на визуальных аспектах, таких как непрозрачность, масштабирование и позиционирование. Независимо от того, предпочитаете ли вы нативную реализацию на Java или облачный workflow cURL, можно достичь тех же высококачественных результатов без потери производительности. Не забудьте получить соответствующую лицензию для использования в продакшене; детали ценообразования доступны на странице продукта, а страница временной лицензии можно использовать для оценки.
Часто задаваемые вопросы
Как добавить водяной знак изображения в PDF на Java без потери качества?
Используйте свойствоscaleFactor, чтобы задать размер водяного знака относительно страницы и сохранить оригинальное DPI исходного PDF. SDK сохраняет разрешение PDF, поэтому водяной знак выглядит чётко при любом уровне масштабирования.Могу ли я добавить несколько водяных знаков в один и тот же PDF?
Да. Создайте отдельные объектыImageWatermarkс разными конфигурациями и добавляйте их последовательно, вызываяaddWatermarkнесколько раз, или добавьте их в список в запросе.Какие форматы изображений поддерживаются для водяного знака?
API принимает распространённые типы изображений, такие как PNG, JPG, BMP, GIF и TIFF. Рекомендуется использовать PNG для качества без потерь и поддержки прозрачности.Есть ли способ предварительно просмотреть водяной знак перед его применением?
Вы можете использовать GroupDocs.Watermark Cloud SDK for Java для создания временного PDF с водяным знаком и загрузить его для проверки. Это использует тот же вызовaddWatermarkс указанием пути вывода, указывающего на временное расположение.
