Если вам нужно добавить водяной знак в PDF на Java, визуальное наложение может защитить ваши документы от несанкционированного использования. Conholdate.Total for Java предоставляет мощный SDK, упрощающий работу с PDF на стороне сервера. В этом руководстве вы увидите полностью готовый пример, узнаете, как работает каждая строка, настроите зависимость Maven и откроете возможности тонкой настройки прозрачности, вращения и выравнивания для профессиональных результатов.
Полный пример кода: Добавление текстового водяного знака в PDF на Java
В следующем примере демонстрируется, как добавить текстовый водяной знак в PDF с помощью Conholdate.Total for Java.
import com.groupdocs.watermark.Watermark;
import com.groupdocs.watermark.options.PdfLoadOptions;
import com.groupdocs.watermark.options.PdfSaveOptions;
import com.groupdocs.watermark.watermarks.TextWatermark;
import com.groupdocs.watermark.watermarks.HorizontalAlignment;
import com.groupdocs.watermark.watermarks.VerticalAlignment;
import java.awt.Color;
import java.awt.Font;
public class AddPdfWatermark {
public static void main(String[] args) {
String inputFile = "input.pdf";
String outputFile = "output.pdf";
// Create a text watermark
Font font = new Font("Arial", Font.BOLD, 48);
TextWatermark textWatermark = new TextWatermark("CONFIDENTIAL", font);
textWatermark.setColor(Color.RED);
textWatermark.setOpacity(0.3);
textWatermark.setRotationAngle(45);
textWatermark.setHorizontalAlignment(HorizontalAlignment.Center);
textWatermark.setVerticalAlignment(VerticalAlignment.Center);
// Load options for the source PDF (enable caching for large files)
PdfLoadOptions loadOptions = new PdfLoadOptions(inputFile);
loadOptions.setCacheSize(100 * 1024 * 1024); // 100 MB cache
// Initialize the Watermark processor
Watermark watermark = new Watermark();
try {
// Apply the watermark to every page of the PDF
watermark.add(textWatermark, loadOptions);
// Save the watermarked PDF
PdfSaveOptions saveOptions = new PdfSaveOptions();
watermark.save(outputFile, saveOptions);
} catch (Exception e) {
System.err.println("Failed to add watermark: " + e.getMessage());
e.printStackTrace();
}
}
}
Примечание: Этот пример кода демонстрирует базовую функциональность. Прежде чем использовать его в вашем проекте, убедитесь, что обновили пути к файлам (
input.pdf,output.pdfи т.д.), чтобы они соответствовали реальному расположению ваших файлов, проверьте, что все необходимые зависимости правильно установлены, и тщательно протестируйте в вашей среде разработки. Если возникнут проблемы, обратитесь к официальной документации или свяжитесь с командой поддержки для получения помощи.
Понимание добавления водяного знака в PDF на Java
Код добавления водяного знака в PDF на Java следует четкой последовательности, которую вы можете адаптировать для любого PDF‑документа.
- Инициализировать процессор водяных знаков -
Watermark watermark = new Watermark();создает движок, который будет применять водяные знаки. - Создать TextWatermark - Объект
TextWatermarkсодержит текст, шрифт, цвет, непрозрачность и вращение.Font font = new Font("Arial", Font.BOLD, 48); TextWatermark textWatermark = new TextWatermark("CONFIDENTIAL", font); - Настроить внешний вид - Методы, такие как
setColor,setOpacityиsetRotationAngle, определяют, как водяной знак выглядит на странице. - Загрузить исходный PDF -
PdfLoadOptionsзагружает входной файл и включает кэширование для больших документов, что уменьшает нагрузку на память. - Применить и сохранить -
watermark.add(textWatermark, loadOptions);применяет водяной знак к каждой странице, аwatermark.save(outputFile, saveOptions);записывает результат.
Загрузка исходного PDF с кэшированием
Когда вы работаете с PDF‑файлами размером в несколько мегабайт, включение кэша предотвращает загрузку всего документа в память SDK. Строка loadOptions.setCacheSize(100 * 1024 * 1024); резервирует 100 МБ для временного хранения, позволяя процессору потоково обрабатывать страницы по мере необходимости. Такой подход особенно полезен в серверных средах, где может выполняться множество одновременных задач наложения водяных знаков.
Для получения подробной информации об API см. Java API справка.
Подготовка среды для наложения водяного знака PDF
Процесс добавления водяного знака в PDF на Java начинается с добавления зависимости Maven. После этого вам понадобится совместимая JDK и небольшая настройка.
Требования и версия Java
- Требуется Java 8 или новее; SDK использует современные возможности языка и потоки.
- Maven 3.5+ упрощает управление зависимостями.
- Убедитесь, что в
pom.xmlвашего проекта включён репозиторий Conholdate, чтобы Maven мог разрешить артефакт.
<repositories>
<repository>
<id>conholdate-repo</id>
<name>Conholdate Maven Repository</name>
<url>https://repository.conholdate.com/repo/</url>
</repository>
</repositories>
<dependency>
<groupId>com.conholdate</groupId>
<artifactId>conholdate-total</artifactId>
<version>24.9</version>
<type>pom</type>
</dependency>
Вы также можете получить JAR‑файлы напрямую со страницы загрузки. После добавления зависимости выполните mvn clean install, чтобы убедиться, что SDK находится в вашем classpath.
Использование REST API (необязательно)
Если вы предпочитаете язык‑независимый подход, Conholdate.Total также предлагает REST‑конечную точку, которая может добавлять водяные знаки без какого‑либо кода Java. Простая команда curl выглядит так:
curl -X POST "https://api.conholdate.com/v1/pdf/watermark" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@input.pdf" \
-F "text=CONFIDENTIAL" \
-F "font=Arial" \
-F "fontSize=48" \
-F "color=FF0000" \
-F "opacity=0.3" \
-F "angle=45" \
-F "horizontalAlignment=center" \
-F "verticalAlignment=center" \
-o output.pdf
Версия REST следует тем же логическим шагам: загрузка, настройка, применение и сохранение, поэтому вы можете выбрать подход, который лучше всего соответствует вашей архитектуре.
Настройка внешнего вида и положения водяного знака
SDK предоставляет несколько свойств, позволяющих точно настроить водяной знак. Ниже перечислены наиболее часто настраиваемые параметры.
Настройка шрифта и цвета
Вы можете заменить шрифт Arial по умолчанию на любой TrueType‑шрифт, доступный на сервере. Изменить цвет так же просто, как передать другую константу java.awt.Color или создать пользовательское значение RGB.
Font customFont = new Font("Times New Roman", Font.ITALIC, 36);
textWatermark.setColor(new Color(0, 102, 204)); // Deep blue
textWatermark.setFont(customFont);
Регулировка непрозрачности и вращения
Непрозрачность определяет, насколько прозрачным выглядит водяной знак. Значения варьируются от 0.0 (полностью невидимый) до 1.0 (полностью непрозрачный). Поворот позволяет наклонить текст, чтобы его было сложнее удалить.
textWatermark.setOpacity(0.45); // 45% opacity
textWatermark.setRotationAngle(30); // 30 degrees clockwise
Выравнивание водяного знака на странице
Свойства горизонтального и вертикального выравнивания принимают Left, Center, Right и Top, Center, Bottom. Центрирование обычно используется для конфиденциальных штампов, но вы можете разместить водяной знак в углу для целей брендинга.
textWatermark.setHorizontalAlignment(HorizontalAlignment.Right);
textWatermark.setVerticalAlignment(VerticalAlignment.Bottom);
Если вы хотите добавить текстовый водяной знак в PDF на Java с разным расположением на каждой странице, вы можете изменять эти свойства внутри цикла, который обрабатывает страницы по отдельности. SDK также поддерживает изображенческие водяные знаки, градиентные заливки и многострочный текст, если ваш сценарий требует большей визуальной сложности.
Заключение
Добавление водяного знака в PDF на Java простое с Conholdate.Total for Java. SDK эффективно загружает, обрабатывает и сохраняет PDF‑файлы, даже большие, благодаря встроенному кэшированию. Настраивая непрозрачность, поворот, шрифт, цвет и выравнивание, вы можете создавать профессиональные водяные знаки, которые препятствуют несанкционированному распространению. Не забудьте получить правильную лицензию для использования в продакшн; вы можете запросить временную лицензию на странице временной лицензии или ознакомиться с вариантами цен на странице ценообразования. После того как код и шаги настройки покрыты, вы готовы интегрировать наложение водяных знаков в PDF в свои Java‑приложения.
Часто задаваемые вопросы
Как добавить водяной знак в PDF на Java без написания низкоуровневого кода PDF?
Используйте класс Watermark из Conholdate.Total for Java. Он абстрагирует структуру PDF, позволяя сосредоточиться на свойствах водяного знака, таких как текст, шрифт и расположение.
Какие параметры доступны для стилизации текстового водяного знака?
Вы можете задать шрифт (new Font(...)), размер, стиль (жирный, курсив), цвет (setColor), непрозрачность (setOpacity), поворот (setRotationAngle) и выравнивание (setHorizontalAlignment, setVerticalAlignment). Эти параметры продемонстрированы в полном примере кода.
Возможно ли SDK эффективно обрабатывать большие PDF?
Да. Настраивая PdfLoadOptions.setCacheSize, вы включаете потоковую передачу и кэширование, что снижает потребление памяти для многомегабайтных PDF. Это делает процесс добавления водяного знака в PDF на Java подходящим для пакетной обработки на серверах.
Нужен ли мне лицензия для запуска этого примера?
A license is required for production deployments. Obtain a temporary license from the temporary license page or explore the full pricing details at the pricing page.
