
Водяной знак — это текст или изображение, которое появляется либо перед существующим содержимым документа, либо за ним, как штамп. Например, вы можете применить водяной знак «Конфиденциально» к страницам с конфиденциальной информацией. Водяные знаки могут использоваться для защиты конфиденциальной информации и для указания действительности юридического документа. Вы также можете нанести водяной знак на любую бумажную банкноту, где они помогают предотвратить подделку. В этой статье мы рассмотрим функции, связанные с водяными знаками в документе PDF.
- REST API для обработки PDF-файлов
- Добавить текстовый водяной знак в PDF с помощью REST API
- Как добавить водяной знак изображения в PDF с помощью Java
- Добавить страницу PDF в качестве водяного знака
- Добавить номер страницы как водяной знак
REST API для обработки PDF-файлов
Aspose.PDF Cloud — это наш отмеченный наградами REST API, предлагающий возможности создания, обработки и рендеринга файлов PDF в другие поддерживаемые форматы, включая DOCX, PPTX, XLSX, XPS, SVG, JPEG и т. д. Теперь давайте поговорим о Aspose.PDF Cloud SDK для Java, который является оболочкой Java вокруг Aspose.PDF Cloud API. Он предоставляет все функции Cloud REST API, включая возможности добавления водяных знаков в PDF с использованием языка программирования Java.
Чтобы использовать Java Cloud SDK, первым шагом является установка Aspose.PDF Cloud SDK для Java. Cloud SDK доступен для загрузки через Maven | GitHub. Ниже приведены сведения о том, как загрузить и использовать Aspose.Pdf.jar в проекте сборки Maven.
Добавьте следующие зависимости в файл pom.xml.
<repositories>
<repository>
<id>aspose-cloud</id>
<name>artifact.aspose-cloud-releases</name>
<url>https://artifact.aspose.cloud/repo</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-pdf-cloud</artifactId>
<version>21.1.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
Добавить текстовый водяной знак в PDF с помощью REST API
Чтобы использовать Cloud API, вам необходимо сначала зарегистрировать учетную запись на панели управления Aspose.Cloud, где вы увидите свои персонализированные данные Client ID и Client Secret. Они необходимы при доступе к API. Ниже приведены сведения о том, как добавить текстовый водяной знак в существующий документ PDF с помощью Java.
- Сначала вам необходимо указать данные вашего идентификатора клиента и секретного ключа клиента для двух переменных.
- Во-вторых, создайте объект класса PdfApi, указав в качестве аргументов Client ID и Client Secret.
- В-третьих, создаем объект класса TextState, где указываем имя шрифта Arial и размер шрифта 14.
- Теперь нам нужно создать экземпляр класса TextStamp. При использовании этого объекта мы укажем HorizontalAlignment как центр, значение штампа Text, размер шрифта и детали типа шрифта указываются с помощью метода textState(..), где объект TextState, созданный на предыдущем шаге, передается в качестве аргумента. Детали полей и VerticalAlignment также указываются как Center.
- Для отображения TextStamp в фоновом режиме используется метод background(..) с аргументом true.
- Кроме того, для штампа также указываются непрозрачность, угол поворота, коэффициент масштабирования и отступ по осям X и Y.
- Теперь создайте объект класса List с типом TextStamp и добавьте созданный выше объект штампа в этот список.
- Наконец, вызовите метод postPageTextStamps(..) PdfAPi и передайте входные данные PDF, номер страницы и список штампов в качестве аргумента для запуска процесса штампа.
// Полные примеры и исходный код можно найти на сайте https://github.com/aspose-pdf-cloud/aspose-pdf-cloud-java
// Получите ClientID и ClientSecret с https://dashboard.aspose.cloud/
String clientId = "29ac1517-753f-4303-b755-7185e35cf939";
String clientSecret = "c537caf71eafc8a75a5ee7813b703276";
String sourceFileName = "PdfWithTable.pdf";
int pageNumber = 1;
String cloudStorage = "";
String folder = "";
// создать экземпляр PdfApi, используя данные Client ID и Client Secret
com.aspose.asposecloudpdf.api.PdfApi pdfApi = new com.aspose.asposecloudpdf.api.PdfApi(clientSecret,clientId);
// создать объект TextState и указать детали форматирования шрифта
com.aspose.asposecloudpdf.model.TextState textState = new com.aspose.asposecloudpdf.model.TextState().fontSize(24.).font("Arial");
com.aspose.asposecloudpdf.model.TextStamp stamp = new com.aspose.asposecloudpdf.model.TextStamp()
.textAlignment(com.aspose.asposecloudpdf.model.HorizontalAlignment.CENTER)
.value("Text Stamp")
.textState(textState)
.leftMargin(1.)
.rightMargin(2.)
.topMargin(3.)
.bottomMargin(4.)
.verticalAlignment(com.aspose.asposecloudpdf.model.VerticalAlignment.CENTER);
stamp.background(true)
.horizontalAlignment(com.aspose.asposecloudpdf.model.HorizontalAlignment.CENTER)
.opacity(1.)
.rotate(com.aspose.asposecloudpdf.model.Rotation.ON90)
.rotateAngle(45.)
.xindent(0.)
.yindent(0.)
.zoom(1.);
// создать объект List с типом TextStamp
List<com.aspose.asposecloudpdf.model.TextStamp> stamps = new ArrayList<>();
// добавить экземпляр TextStamp в список TextStamps
stamps.add(stamp);
// вызов метода postTextStamp на первую страницу PDF-файла
com.aspose.asposecloudpdf.model.AsposeResponse response = pdfApi.postPageTextStamps(sourceFileName, pageNumber, stamps,cloudStorage, folder);

Изображение 1: Текстовый штамп добавлен в PDF-документ.
Образцы файлов, использованные в приведенном выше примере, можно загрузить по следующим ссылкам:
Как добавить водяной знак изображения в PDF с помощью Java
С меньшим количеством строк кода водяной знак Image можно легко добавить в документ PDF. Ниже приведены шаги по добавлению изображения JPEG в файл PDF.
- Первый шаг — создать объект PdfApi, передав ClientSecret и ClientID в качестве аргумента.
- Следующий шаг — создание объекта ImageStamp, где мы определяем файл изображения, который будет проштампован, детали полей и VerticalAlignment. В нашем случае мы выбрали значение Center из перечисления VerticalAlignment.
- Установите ImageStamp.background(True), чтобы изображение отображалось за содержимым страницы. В противном случае оно будет отображаться поверх содержимого страницы.
- Создайте объект List типа ImageStamp и добавьте в эту коллекцию объект ImageStamp, созданный на втором шаге.
- Наконец, вызовите метод postPageImageStamps(…) класса PdfApi, куда мы передаем в качестве аргумента входной PDF-файл, номер страницы для водяного знака и список ImageStamp, созданный выше.
- Файл PDF с водяным знаком изображения сохраняется в том же облачном хранилище. Предварительный просмотр полученного файла показан ниже.
// Полные примеры и исходный код можно найти на сайте https://github.com/aspose-pdf-cloud/aspose-pdf-cloud-java
// Получите ClientID и ClientSecret с https://dashboard.aspose.cloud/
String clientId = "c235e685-1aab-4cda-a95b-54afd63eb87f";
String clientSecret = "b8da4ee37494f2ef8da3c727f3a0acb9";
// создать экземпляр PdfApii
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
// входной PDF-документ
String file = "PdfWithTable.pdf";
// Исходное изображение, которое будет использоваться для водяного знака
String image = "Koala.jpg";
// номер страницы, на которую будет добавлен водяной знак
int pageNumber = 1;
// создать экземпляр объекта ImageStamp
ImageStamp stampObject = new ImageStamp()
.fileName(image)
.leftMargin(1.)
.rightMargin(2.)
.topMargin(3.)
.bottomMargin(214.)
.verticalAlignment(com.aspose.asposecloudpdf.model.VerticalAlignment.CENTER);
// добавить водяной знак позади содержимого страницы
stampObject.background(true)
.horizontalAlignment(com.aspose.asposecloudpdf.model.HorizontalAlignment.CENTER)
.opacity(1.)
.rotate(com.aspose.asposecloudpdf.model.Rotation.NONE)
.rotateAngle(0.)
.xindent(0.)
.yindent(0.)
.zoom(0.2);
// создать список объектов ImageStamp
List<com.aspose.asposecloudpdf.model.ImageStamp> stamps = new ArrayList<>();
// Добавить ImageStamp в список ImageStamp
stamps.add(stampObject);
// вызовите метод API для добавления изображения водяного знака в PDF
AsposeResponse response = pdfApi.postPageImageStamps(file, pageNumber, stamps,null, null);

Изображение 2:- Изображение штампа добавлено в PDF-документ.
Образцы файлов, использованные в примере выше, можно загрузить по следующей ссылке.
Добавить страницу PDF в качестве водяного знака
Помимо текста и изображения, PDF-страницу можно также добавить в качестве водяного знака в существующий PDF-документ. Ниже приведены шаги по выполнению этих требований.
- Прежде всего, создайте объект класса PdfApi, передав в качестве аргументов Client ID и Client Secret.
- Во-вторых, создайте экземпляр класса PdfPageStamp. Этот класс используется для указания пути к документу PDF, а также будет использоваться для водяного знака.
- Метод PdfPageStamp.pageIndex(..) используется для указания номера страницы PDF-файла, которая будет использоваться для водяного знака.
- Среди других методов важен метод background(..), поскольку он используется для установки водяного знака позади содержимого PDF-файла или для его сохранения поверх содержимого.
- Затем создайте список типа PdfPageStamp и добавьте созданный выше объект PdfPageStamp в коллекцию списков.
- Наконец, вызовите метод postPagePdfPageStamps(…) класса PdfApi, в котором мы передаем исходный файл PDF, индекс страницы для водяного знака и список PdfPageStamp в качестве аргумента. Результирующий вывод сохраняется в облачном хранилище.
// Полные примеры и исходный код можно найти на сайте https://github.com/aspose-pdf-cloud/aspose-pdf-cloud-java
// Получите ClientID и ClientSecret с https://cloud.aspose.com
String clientId = "c235e685-1aab-4cda-a95b-54afd63eb87f";
String clientSecret = "b8da4ee37494f2ef8da3c727f3a0acb9";
// создать экземпляр PdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
// входной PDF-документ
String sourcePDF = "PdfWithAnnotations.pdf";
// Исходный PDF-файл, который будет использоваться для водяного знака
String stampPDF = "rusdoc.pdf";
// номер страницы, на которую будет добавлен водяной знак
int pageNumber = 1;
// создать экземпляр объекта PdfPageStamp
PdfPageStamp stampObject = new PdfPageStamp()
// PDF-файл для использования в качестве водяного знака
.fileName(stampPDF)
// укажите индекс страницы, которую вы хотите добавить в качестве водяного знака
.pageIndex(1)
.leftMargin(150.)
.rightMargin(2.)
// мы установили -ve верхнее поле, чтобы переместить водяной знак PDF вверх
.topMargin(-330.)
.bottomMargin(414.)
// установить вертикальное выравнивание водяного знака сверху
.verticalAlignment(com.aspose.asposecloudpdf.model.VerticalAlignment.TOP);
// вывести водяной знак на передний план/сделать видимым
stampObject.background(false)
.horizontalAlignment(com.aspose.asposecloudpdf.model.HorizontalAlignment.CENTER)
.opacity(1.)
.rotate(com.aspose.asposecloudpdf.model.Rotation.NONE)
.rotateAngle(0.)
.xindent(0.)
.yindent(0.)
// установите коэффициент масштабирования 0,7, чтобы изображение было сжатым, а не отображалось в 100% масштабе
.zoom(0.7);
// создать список объектов PdfPageStamp
List<com.aspose.asposecloudpdf.model.PdfPageStamp> stamps = new ArrayList<>();
// Добавить PdfPageStamp в список ImageStamp
stamps.add(stampObject);
// вызовите метод API для добавления PDF в качестве водяного знака
AsposeResponse response = pdfApi.postPagePdfPageStamps(sourcePDF, pageNumber, stamps,null, null);

Изображение 3: Предварительный просмотр PDF-файла с водяным знаком.
Образцы файлов, использованные в приведенном выше примере, можно загрузить по следующим ссылкам.
Добавить номер страницы как водяной знак
Информация о номерах страниц очень важна с точки зрения удобства использования, поскольку она дает читателю четкое представление о длине документа, а также о том, какую страницу он просматривает в данный момент.
- После создания экземпляра PdfApi создайте объект класса PageNumberStamp.
- используйте метод value(…) класса PageNumberStamp, чтобы указать шаблон для штампа PageNumber.
- Другим важным методом является setStartingNumber(..), который указывает число страниц, с которых должен начинаться водяной знак.
- Остальной фрагмент кода, включая сведения о полях, непрозрачность, угол поворота, коэффициент масштабирования и т. д., такой же, как и в приведенных выше фрагментах кода.
- Нам необходимо указать startPageNumber и endPageNumber, где будет размещен водяной знак номера страницы.
- Наконец, вызовите postDocumentPageNumberStamps(…), который принимает в качестве аргументов входной PDF-файл, объект PageNumberStamp, информацию о начальной и конечной страницах и добавляет водяной знак номера страницы в исходный файл.
// Полные примеры и исходный код можно найти на сайте https://github.com/aspose-pdf-cloud/aspose-pdf-cloud-java
// Получите ClientID и ClientSecret с https://dashboard.aspose.cloud/
String clientId = "c235e685-1aab-4cda-a95b-54afd63eb87f";
String clientSecret = "b8da4ee37494f2ef8da3c727f3a0acb9";
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
// входной PDF-документ
String sourcePDF = "PdfWithTable.pdf";
// создать экземпляр объекта PdfPageStamp
PageNumberStamp stampObject = new PageNumberStamp()
// Формат водяного знака номера страницы
.value("Page #")
.leftMargin(1.)
.rightMargin(2.)
.topMargin(3.)
.bottomMargin(4.)
// установить вертикальное выравнивание водяного знака как «Низ»
.verticalAlignment(com.aspose.asposecloudpdf.model.VerticalAlignment.BOTTOM);
// укажите начальный номер для счетчика
stampObject.setStartingNumber(3);
// вывести водяной знак на передний план/сделать видимым
stampObject.background(false)
.horizontalAlignment(com.aspose.asposecloudpdf.model.HorizontalAlignment.CENTER)
.opacity(1.)
.rotate(com.aspose.asposecloudpdf.model.Rotation.NONE)
.rotateAngle(0.)
.xindent(0.)
.yindent(0.)
.zoom(1.0);
// начальная страница формы, где поставить водяной знак
int startPageNumber = 2;
// индекс страницы, на которой будет размещен водяной знак
int endPageNumber = 3;
// вызовите метод API для добавления PDF в качестве водяного знака
AsposeResponse response = pdfApi.postDocumentPageNumberStamps(sourcePDF, stampObject,startPageNumber, endPageNumber, null, null);

Изображение 4: Предварительный просмотр номера страницы в качестве водяного знака в PDF-файле.
Образцы файлов, использованные в приведенном выше примере, можно загрузить по следующей ссылке:
Краткий совет
Aspose.PDF Cloud SDK для Java настолько мощный, что с помощью пары строк кода вы можете преобразовать форматы JPEG, EPUB, LaTeX, HTML, PS, XSLFo, XPS, SVG, DOCX, PCL в формат PDF. Для получения дополнительной информации посетите страницу продукта.
Заключение
В этой записи блога мы узнали о шагах, которые помогут нам легко добавлять информацию о тексте, изображении, PDF и номере страницы в существующие документы PDF с помощью Aspose.PDF Cloud SDK для Java. Обратите внимание, что наши Cloud SDK имеют открытый исходный код, и вы также можете загрузить их полный исходный код и изменить его в соответствии с вашими требованиями. Полный исходный код можно загрузить из репозитория GitHub. Если у вас возникнут какие-либо вопросы, пожалуйста, свяжитесь с нами через бесплатные форумы поддержки.