PDFに透かしを追加する

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

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は完全に不透明です。

プログラミングサンプル: 透かしの取得

次のコードスニペットは、PHPを使用してPDFファイルの最初のページにある各透かしを取得する方法を示しています。


    // ドキュメントを開く
    $document = new Document($inputFile);
            
    $formattedText = new FormattedText("Watermark", 
        (new Color())->getBlue()->getRgb(),
        (new facades_FontStyle())->getCourier(), 
        facades_EncodingType::$Identity_h, 
        true, 72.0);

    $horizontalAlignment = new HorizontalAlignment();
    $verticalAlignment = new VerticalAlignment();

    $artifact = new WatermarkArtifact();        
    $artifact->setText($formattedText);        
    $artifact->setArtifactHorizontalAlignment ($horizontalAlignment->getCenter());
    $artifact->setArtifactVerticalAlignment ($verticalAlignment->getCenter());
    $artifact->setRotation(45);
    $artifact->setOpacity(0.5);
    $artifact->setBackground(true);
    $document->getPages()->get_Item(1)->getArtifacts()->add($artifact);
    
    // 出力ドキュメントを保存する
    $document->save($outputFile);
    $document->close();