Добавление водяного знака в PDF

Aspose.PDF for Java позволяет добавлять водяные знаки в ваш PDF-документ с использованием артефактов. Пожалуйста, ознакомьтесь с этой статьей, чтобы решить вашу задачу.

Водяной знак, созданный с помощью Adobe Acrobat, называется артефактом (как описано в разделе 14.8.2.2 Реальное содержание и артефакты спецификации PDF). Для работы с артефактами Aspose.PDF имеет два класса: Artifact и ArtifactCollection.

Для получения всех артефактов на конкретной странице класс Page имеет свойство Artifacts. This topic explains how to work with artifact in PDF files.

Работа с артефактами

Класс Artifact содержит следующие свойства:

Artifact.Type – получает тип артефакта (поддерживает значения перечисления Artifact.ArtifactType, где значения включают Background, Layout, Page, Pagination и Undefined). Artifact.Subtype – получает подтип артефакта (поддерживает значения перечисления Artifact.ArtifactSubtype, где значения включают Background, Footer, Header, Undefined, Watermark).

Artifact.Contents – получает коллекцию внутренних операторов артефакта. Поддерживаемый тип – System.Collections.ICollection. Artifact.Form – получает XForm артефакта (если используется XForm). Артефакты водяных знаков, заголовка и нижнего колонтитула содержат XForm, который показывает все содержимое артефакта.

Artifact.Image – получает изображение артефакта (если изображение присутствует, иначе null).Artifact.Text – Получает текст артефакта.
Artifact.Rectangle – Получает позицию артефакта на странице.
Artifact.Rotation – Получает угол поворота артефакта (в градусах, положительное значение указывает на поворот против часовой стрелки).
Artifact.Opacity – Получает непрозрачность артефакта. Возможные значения находятся в диапазоне 0…1, где 1 — полностью непрозрачный.

Примеры программирования: Получение водяных знаков

Следующий фрагмент кода показывает, как получить каждый водяной знак на первой странице PDF файла с помощью Java.

 package com.aspose.pdf.examples;

import com.aspose.pdf.*;
import com.aspose.pdf.facades.EncodingType;
import com.aspose.pdf.facades.FontStyle;
import com.aspose.pdf.facades.FormattedText;

public class ExampleWatermark {
    // Путь к директории с документами.
    private static String _dataDir = "/home/admin1/pdf-examples/Samples/";

    public static void Split() {

        // Открыть документ
        Document doc = new Document(_dataDir + "text.pdf");      
        FormattedText formattedText = new FormattedText("Watermark", java.awt.Color.BLUE,FontStyle.Courier, EncodingType.Identity_h, true, 72.0F);
        WatermarkArtifact artifact = new WatermarkArtifact();        
        artifact.setText(formattedText);        
        artifact.setArtifactHorizontalAlignment (HorizontalAlignment.Center);
        artifact.setArtifactVerticalAlignment (VerticalAlignment.Center);
        artifact.setRotation (45);
        artifact.setOpacity (0.5);
        artifact.setBackground (true);
        doc.getPages().get_Item(1).getArtifacts().add(artifact);
        doc.save(_dataDir + "watermark.pdf");
    }

}