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

Aspose.PDF for .NET は、Artifactsを使用してPDFドキュメントにウォーターマークを追加することができます。この記事をチェックして、タスクを解決してください。

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

Adobe Acrobatで作成されたウォーターマークはアーティファクトと呼ばれます(PDF仕様の14.8.2.2 実際の内容とアーティファクトに記載)。アーティファクトを扱うために、Aspose.PDFには Artifact クラスと ArtifactCollection クラスがあります。

特定のページのすべてのアーティファクトを取得するために、Page クラスには Artifacts プロパティがあります。このトピックでは、PDFファイルでアーティファクトを扱う方法について説明します。

アーティファクトの操作

Artifact クラスには以下のプロパティが含まれています:

Artifact.Type – アーティファクトのタイプを取得します(Artifact.ArtifactType 列挙の値をサポートしており、値には Background, Layout, Page, Pagination, Undefined が含まれます)。 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.Rotation – アーティファクトの回転を取得します(度数で、正の値は反時計回りの回転を示します)。 Artifact.Opacity – アーティファクトの不透明度を取得します。可能な値は0から1の範囲で、1は完全に不透明です。

プログラミングサンプル:PDFファイルにウォーターマークを追加する方法

次のコードスニペットは、C#を使用してPDFファイルの最初のページにある各ウォーターマークを取得する方法を示しています。

public static void AddWatermarks()
{
    Document document = new Document(_dataDir + "text.pdf");
    WatermarkArtifact artifact = new WatermarkArtifact();
    artifact.SetTextAndState(
        "WATERMARK",
        new TextState()
        {
            FontSize = 72,
            ForegroundColor = Color.Blue,
            Font = FontRepository.FindFont("Courier")
        });
    artifact.ArtifactHorizontalAlignment = HorizontalAlignment.Center;
    artifact.ArtifactVerticalAlignment = VerticalAlignment.Center;
    artifact.Rotation = 45;
    artifact.Opacity = 0.5;
    artifact.IsBackground = true;
    document.Pages[1].Artifacts.Add(artifact);
    document.Save(_dataDir + "watermark.pdf");
}