Додати водяний знак до PDF

Водяний знак — це текст або зображення, яке з’являється перед або позаду наявного вмісту документа, як штамп. Наприклад, ви можете застосувати водяний знак «Конфіденційно» до сторінок із конфіденційною інформацією. Водяні знаки можна використовувати для захисту конфіденційної інформації та для позначення дійсності юридичного документа. Ви також можете нанести водяний знак на будь-яку паперову банкноту, щоб запобігти підробці. У цій статті ми обговоримо функції, пов’язані з водяним знаком у документі PDF.

REST API для обробки PDF

Aspose.PDF Cloud — це наш відзначений нагородами REST API, який пропонує можливості створювати, маніпулювати, а також відтворювати PDF файли в інших підтримуваних форматах, зокрема DOCX, PPTX, XLSX, XPS, SVG, JPEG тощо. Тепер давайте поговоримо про Aspose.PDF Cloud SDK for 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, де ви побачите свій персональний ідентифікатор клієнта та секретні дані клієнта. Це важливо під час доступу до API. Нижче наведено деталі того, як додати текстовий водяний знак до існуючого документа PDF за допомогою Java

  • По-перше, вам потрібно вказати дані свого ідентифікатора клієнта та секрету клієнта проти двох змінних.
  • По-друге, створіть об’єкт класу PdfApi, надавши ідентифікатор клієнта та секрет клієнта як аргументи.
  • По-третє, створіть об’єкт класу TextState, де ми вкажемо назву шрифту як Arial і розмір шрифту як 14.
  • Тепер нам потрібно створити екземпляр класу TextStamp. Під час використання цього об’єкта ми вказуватимемо HorizontalAlignment як центр, значення текстового штампа, розмір шрифту та деталі типу шрифту вказуються за допомогою методу textState(..), де створений на кроці вище об’єкт TextState передається як аргумент. Деталі полів і VerticalAlignment також вказуються як Center.
  • Щоб відобразити TextStamp у фоновому режимі, використовується метод background(..) з аргументом true.
  • Крім того, для штампа також вказуються непрозорість, кут повороту, коефіцієнт масштабування та відступ XY.
  • Тепер створіть об’єкт класу List із типом TextStamp і додайте створений вище об’єкт stamp до цього списку.
  • Нарешті, викличте метод 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, використовуючи дані ідентифікатора клієнта та секрету клієнта
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);

// виклик методу для розміщення TextStamp на першій сторінці PDF-файлу
com.aspose.asposecloudpdf.model.AsposeResponse response = pdfApi.postPageTextStamps(sourceFileName, pageNumber, stamps,cloudStorage, folder);
TextStamp додано до PDF

Зображення 1: текстовий штамп додано до документа PDF.

Зразки файлів, використаних у наведеному вище прикладі, можна завантажити за такими посиланнями:

Як додати водяний знак зображення в PDF за допомогою Java

Завдяки меншій кількості рядків коду водяний знак зображення можна легко додати до документа PDF. Нижче наведено кроки, як додати зображення JPEG до PDF-файлу.

  • По-перше, необхідно створити об’єкт PdfApi, передаючи ClientSecret і ClientID як аргумент.
  • Наступним кроком є створення об’єкта ImageStamp, у якому ми визначаємо файл зображення для штампування, деталі полів і VerticalAlignment. У нашому випадку ми вибрали значення центру з переліку 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 до списку ImageStamps
stamps.add(stampObject);

// виклик методу API для додавання зображення водяного знака до PDF
AsposeResponse response = pdfApi.postPageImageStamps(file, pageNumber, stamps,null, null);
Штамп зображення додано до PDF

Зображення 2: - Штамп зображення додано до документа PDF.

Зразки файлів, використаних у прикладі вище, можна завантажити за наступним посиланням.

Додайте сторінку PDF як штамп із водяним знаком

Окрім тексту та зображення, сторінку PDF також можна додати як водяний знак до наявного документа PDF. Нижче наведено кроки щодо виконання цих вимог.

  • Перш за все, створіть об’єкт класу PdfApi, передаючи Client ID і Client Secret як аргументи.
  • По-друге, створіть екземпляр класу PdfPageStamp. Цей клас використовується для вказівки шляху PDF-документа, тоді як він використовуватиметься для водяного знака.
  • Метод PdfPageStamp.pageIndex(..) використовується для визначення номера сторінки PDF-файлу, який використовуватиметься для водяного знака.
  • Серед інших методів фон (..) важливий, оскільки він використовується для встановлення водяного знака за вмістом PDF або збереження його поверх вмісту.
  • Потім створіть список типу PdfPageStamp і додайте створений вище об’єкт PdfPageStamp до колекції List.
  • Нарешті, викличте метод 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.)
	
  	// встановити вертикальне вирівнювання водяного знака як Top
	.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 до списку ImageStamps
stamps.add(stampObject);
	
// викликати метод API, щоб додати PDF як водяний знак
AsposeResponse response = pdfApi.postPagePdfPageStamps(sourcePDF, pageNumber, stamps,null, null);
PDF-файл як водяний знак

Зображення 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);
Штамп номера сторінки в PDF

Зображення 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. Якщо у вас виникнуть пов’язані запитання, зв’яжіться через безкоштовні форуми підтримки.