使用 C# 向 PDF 添加水印

Aspose.PDF for .NET 允许使用 Artifacts 向您的 PDF 文档添加水印。请查看本文以解决您的任务。

以下代码片段还可以与 Aspose.PDF.Drawing 库一起使用。

使用 Adobe Acrobat 创建的水印称为工件(如 PDF 规范中的 14.8.2.2 真实内容和工件所述)。为了处理工件,Aspose.PDF 有两个类:ArtifactArtifactCollection

为了获取特定页面上的所有工件,Page 类具有 Artifacts 属性。此主题解释了如何在 PDF 文件中处理工件。

处理工件

Artifact 类包含以下属性:

  • Artifact.Type:获取工件类型(支持 Artifact.ArtifactType 枚举的值,其中包括背景、布局、页面、分页和未定义)。
  • Artifact.Subtype:获取工件子类型(支持 Artifact.ArtifactSubtype 枚举的值,其中包括背景、页脚、页眉、未定义、水印)。
  • 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 文件上添加水印

以下代码片段演示了如何使用 C# 获取 PDF 文件第一页上的每个水印。

// 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");
    }
}