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

Добавьте изображение водяного знака в PDF‑документы на Java за 5 шагов

  1. Инициализировать клиент API: Создайте экземпляр ApiClient с вашим идентификатором клиента и секретом.
ApiClient apiClient = new ApiClient("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");
WatermarkApi watermarkApi = new WatermarkApi(apiClient);

Этот шаг подключает ваш Java‑код к сервису GroupDocs.Watermark Cloud. См. API reference для получения дополнительных сведений.

  1. Укажите исходный PDF‑файл: Создайте объект FileInfo, указывающий на PDF, который вы хотите пометить водяным знаком.
FileInfo fileInfo = new FileInfo();
fileInfo.setFilePath("input.pdf");

Файл должен быть загружен в ваше хранилище GroupDocs перед запросом.

  1. Настройте водяной знак изображения: определите путь к изображению, непрозрачность, коэффициент масштабирования, вращение и выравнивание.
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 определяет размер относительно страницы.

  1. Установите параметры водяного знака и путь вывода: Объедините информацию о файле и водяной знак в объект WatermarkOptions.

    WatermarkOptions options = new WatermarkOptions();
    options.setFileInfo(fileInfo);
    options.setImageWatermark(imageWatermark);
    options.setOutputPath("output.pdf");
    

    outputPath указывает сервису, где хранить полученный PDF.

  2. Выполнить запрос: Создайте 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.

  1. Получить токен доступа
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, используемый в последующих вызовах.

  1. Загрузить исходный 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"
    
  2. Загрузите изображение водяного знака

    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"
    
  3. Добавить водяной знак изображения

    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‑кода, применяя те же настройки непрозрачности, масштабирования и выравнивания.

  4. Скачать 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 с указанием пути вывода, указывающего на временное расположение.

Подробнее