Добавление водяного знака в PDF с помощью C#

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

Следующий фрагмент кода также работает с библиотекой Aspose.PDF.Drawing.

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

Чтобы получить все артефакты на определённой странице, класс Page имеет свойство Artifacts. Этот раздел объясняет, как работать с артефактами в файлах PDF.

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

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

  • Тип артефакта: получает тип артефакта (поддерживает значения перечисления Artifact.ArtifactType, где значения включают Background, Layout, Page, Pagination и Undefined).
  • Подтип артефакта: получает подтип артефакта (поддерживает значения перечисления Artifact.ArtifactSubtype, где значения включают Background, Footer, Header, Undefined, Watermark).
  • Содержимое артефакта: Получает коллекцию внутренних операторов артефакта. Поддерживаемый тип — System.Collections.ICollection.
  • Форма артефакта: Получает XForm артефакта (если используется XForm). Артефакты водяных знаков, заголовков и нижних колонтитулов содержат XForm, который показывает всё содержимое артефакта.
  • Изображение артефакта: Получает изображение артефакта (если присутствует изображение, иначе null).
  • Текст артефакта: Получает текст артефакта.
  • Прямоугольник артефакта: Получает положение артефакта на странице.
  • Поворот артефакта: Получает поворот артефакта (в градусах, положительное значение указывает на вращение против часовой стрелки).
  • Непрозрачность артефакта: Получает непрозрачность артефакта. Возможные значения находятся в диапазоне от 0 до 1, где 1 полностью непрозрачный.

Как добавить водяной знак в файлы PDF

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

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddWatermarks()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf_StampsWatermarks();
    
    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "AddWatermarksInput.pdf"))
    {
        // Create a new watermark artifact
        var artifact = new Aspose.Pdf.WatermarkArtifact();
        artifact.SetTextAndState(
            "WATERMARK",
            new Aspose.Pdf.Text.TextState()
            {
                FontSize = 72,
                ForegroundColor = Aspose.Pdf.Color.Blue,
                Font = Aspose.Pdf.Text.FontRepository.FindFont("Courier")
            });
        // Set watermark properties
        artifact.ArtifactHorizontalAlignment = Aspose.Pdf.HorizontalAlignment.Center;
        artifact.ArtifactVerticalAlignment = Aspose.Pdf.VerticalAlignment.Center;
        artifact.Rotation = 45;
        artifact.Opacity = 0.5;
        artifact.IsBackground = true;
        // Add watermark artifact to the first page
        document.Pages[1].Artifacts.Add(artifact);
        // Save PDF document
        document.Save(dataDir + "AddWatermarks_out.pdf");
    }
}