C#を使用してPDFに透かしを追加する

Aspose.PDF for .NETは、アーティファクトを使用してPDFドキュメントに透かしを追加することを可能にします。このタスクを解決するためにこの記事を確認してください。

次のコードスニペットは、Aspose.PDF.Drawingライブラリでも動作します。

Adobe Acrobatで作成された透かしはアーティファクトと呼ばれます(PDF仕様の14.8.2.2の実際のコンテンツとアーティファクトに記載されています)。アーティファクトを操作するために、Aspose.PDFには2つのクラスがあります:ArtifactArtifactCollection

特定のページ上のすべてのアーティファクトを取得するには、PageクラスのArtifactsプロパティを使用します。このトピックでは、PDFファイル内のアーティファクトの操作方法について説明します。

アーティファクトの操作

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ファイルに透かしを追加する方法

次のコードスニペットは、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");
    }
}