Добавить водяной знак в PDF с GroupDocs.Watermark для Java

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

Быстрые ответы

  • Можно ли добавить водяной знак в защищённый паролем PDF? Да – передайте пароль при загрузке документа, затем примените водяной знак как обычно.
  • Какие форматы поддерживают водяные знаки? Более 30 форматов, включая PDF, DOCX, PPTX и изображения.
  • Нужна ли лицензия для разработки? Временная лицензия подходит для тестирования; полная лицензия требуется для продакшна.
  • Какая версия Java требуется? Поддерживается Java 8 и выше.
  • Поддерживается ли работа с потоками? Абсолютно – вы можете загружать из InputStream и сохранять в OutputStream, не касаясь файловой системы.

Что такое добавление водяного знака в PDF?

Add watermark to pdf относится к процессу наложения полупрозрачного текста или изображений на каждую страницу PDF‑документа для указания прав собственности, конфиденциальности или брендинга. GroupDocs.Watermark для Java предоставляет одноразовый API, который автоматически обрабатывает позиционирование, непрозрачность и выбор диапазона страниц.

Почему использовать GroupDocs.Watermark для Java?

GroupDocs.Watermark поддерживает 35+ форматов файлов и может обрабатывать PDF‑документы до 500 страниц менее чем за 2 секунды на типичном серверном процессоре. Библиотека работает полностью в памяти, поэтому вам никогда не понадобится Microsoft Office или Adobe Acrobat. Ее API потокобезопасен, что делает её идеальной для высоконагруженных веб‑сервисов.

Требования

  • Установлен Java 8 или новее.
  • Проект Maven или Gradle, настроенный с зависимостью groupdocs-watermark.
  • Действительная лицензия GroupDocs.Watermark (временная лицензия для оценки).
  • PDF‑файлы, которые вы хотите защитить, при необходимости с паролями.

Как добавить водяной знак в PDF – пошагово

Загрузите исходный документ, примените водяной знак, затем сохраните результат. Ниже приведены ответы на каждую подзадачу.

Как загрузить документ с диска?

Watermarker – основной класс, используемый для загрузки и манипулирования документами при наложении водяных знаков. Укажите полный путь к файлу в конструкторе Watermarker; SDK автоматически определит формат файла, проверит содержимое и загрузит документ в память, готовый к любой операции с водяным знаком. Такой подход работает с PDF, Word, изображениями и многими другими поддерживаемыми типами.

Watermarker watermarker = new Watermarker("C:/files/input.pdf");

После этой строки PDF полностью загружен в память и готов к любой операции с водяным знаком.

Как загрузить документ из потока?

Watermarker также может принимать InputStream для загрузки документов напрямую из памяти. Когда вы получаете файл через HTTP или очередь сообщений, оберните массив байтов в ByteArrayInputStream и передайте его в конструктор Watermarker, принимающий InputStream. SDK читает поток без записи на диск, сохраняя производительность и безопасность, и поддерживает большие файлы, обрабатывая данные порциями. Этот метод идеален для веб‑сервисов и микросервисных архитектур.

InputStream pdfStream = new ByteArrayInputStream(pdfBytes);
Watermarker watermarker = new Watermarker(pdfStream);

SDK читает поток без записи на диск, сохраняя производительность и безопасность.

Как загрузить документ, защищённый паролем?

Watermarker поддерживает загрузку защищённых паролем PDF, если указать пароль вторым аргументом. Передайте пароль во второй параметр конструктора. SDK расшифровывает PDF «на лету», после чего вы можете работать с документом как с любым другим. Если пароль верный, все страницы становятся доступными для наложения водяного знака; иначе библиотека бросит понятное исключение, которое вы можете перехватить и записать в лог для отладки.

Watermarker watermarker = new Watermarker("C:/files/secure.pdf", "mySecretPwd");

Если пароль неверен, SDK бросит информативное исключение, которое вы можете перехватить и записать в лог.

Как применить текстовый водяной знак?

TextWatermark представляет текстовый водяной знак, который можно применять к страницам с настраиваемым стилем. Создайте объект TextWatermark с нужным текстом, шрифтом, размером и цветом. Затем вызовите add у экземпляра Watermarker, при необходимости указав диапазоны страниц. Водяной знак будет отрисован с указанной непрозрачностью и вращением, а позиционирование можно задать через предопределённые места или пользовательские координаты, обеспечивая одинаковый вид на всех страницах.

TextWatermark watermark = new TextWatermark("Confidential", new Font("Arial", 36));
watermark.setColor(Color.RED);
watermark.setTransparency(0.5);
watermarker.add(watermark);

Этот вызов размещает водяной знак на каждой странице по умолчанию; при необходимости вы можете ограничить его с помощью new PageRange(1, 5).

Как применить изображение‑водяной знак?

ImageWatermark представляет графический водяной знак, например логотип или печать. Создайте ImageWatermark, указав путь или поток к вашему логотипу, затем добавьте его аналогично текстовому водяному знаку. SDK автоматически масштабирует изображение под страницу, сохраняя его пропорции, а вы можете регулировать непрозрачность, вращение и размещение, чтобы достичь желаемого визуального эффекта без искажений оригинального содержимого.

ImageWatermark imgWatermark = new ImageWatermark("C:/images/logo.png");
imgWatermark.setTransparency(0.3);
watermarker.add(imgWatermark);

SDK масштабирует изображение под страницу, сохраняя соотношение сторон.

Как сохранить документ с водяным знаком?

save записывает изменённый документ в указанное место в выбранном формате. Вызовите save, указав путь вывода и желаемый формат. Если параметр формата опущен, используется тот же формат, что и у исходного файла. Метод записывает изменённый PDF на диск, сохраняя всё оригинальное содержимое, за исключением новых слоёв водяных знаков, и поддерживает сохранение в потоки для дальнейшей обработки.

watermarker.save("C:/files/output.pdf");

Метод записывает изменённый PDF на диск, сохраняя всё оригинальное содержимое, за исключением новых слоёв водяных знаков.

Доступные руководства

Как загрузить документы, защищённые паролем, в Java с помощью GroupDocs.Watermark

Узнайте, как загружать и управлять водяными знаками в защищённых паролем документах с помощью GroupDocs.Watermark для Java. Руководство содержит пошаговые инструкции, практические примеры и советы по устранению неполадок.

Как загрузить и добавить водяной знак в защищённые паролем Word‑документы с помощью GroupDocs.Watermark в Java

Узнайте, как эффективно использовать GroupDocs.Watermark с Java для загрузки, управления и наложения водяных знаков на защищённые паролем Word‑документы.

Дополнительные ресурсы

Распространённые проблемы и решения

  • Ошибка неверного пароля – дважды проверьте строку пароля; она должна быть закодирована в UTF‑8.
  • Недостаток памяти при работе с большими PDF – включите режим потоковой обработки, используя конструкторы Watermarker, принимающие InputStream и OutputStream.
  • Водяной знак не виден – убедитесь, что непрозрачность водяного знака установлена выше 0.1 и цвет контрастирует с фоном страницы.

Часто задаваемые вопросы

В: Можно ли добавить несколько водяных знаков в один PDF?
О: Да. Вызывайте watermarker.add() последовательно с разными объектами TextWatermark или ImageWatermark; каждый будет наложен в порядке вызова.

В: Сохраняет ли библиотека существующие аннотации?
О: Абсолютно. Все оригинальные объекты PDF, включая аннотации, поля форм и метаданные, остаются нетронутыми, если вы явно не изменяете их.

В: Можно ли наложить водяной знак только на выбранные страницы?
О: Да. Передайте PageRange (например, new PageRange(2, 4)) в метод add, чтобы ограничить водяной знак конкретными страницами.

В: Какой максимальный размер файла поддерживается?
О: SDK способен обрабатывать файлы до 2 ГБ без полной загрузки документа в память благодаря своей потоковой архитектуре.

В: Как удалить водяной знак после его добавления?
О: Используйте watermarker.remove(watermarkId), где watermarkId – идентификатор, возвращённый при первоначальном добавлении водяного знака.


Последнее обновление: 2026-09-16
Тестировано с: GroupDocs.Watermark 23.9 for Java
Автор: GroupDocs

Связанные руководства