PDFにテキストスタンプをプログラムで追加

Javaでテキストスタンプを追加

Aspose.PDF for PHP via Javaは、PDFファイルにテキストスタンプを追加するためのTextStampクラスを提供します。 The TextStamp クラスは、スタンプオブジェクトのフォントサイズ、フォントスタイル、フォントカラーなどを指定するための必要なメソッドを提供します。テキストスタンプを追加するには、まず必要なメソッドを使用して Document オブジェクトと TextStamp オブジェクトを作成する必要があります。その後、Page クラスの addStamp(..) メソッドを呼び出して、PDFドキュメントにスタンプを追加できます。

以下のコードスニペットは、PDFファイルにテキストスタンプを追加する方法を示しています。


    // ドキュメントを開く
    $document = new Document($inputFile);
    $pages = $document->getPages();
    $colors = new Color();
    // テキストスタンプを作成
    $textStamp = new TextStamp("Sample Stamp");
    // スタンプが背景かどうかを設定
    $textStamp->setBackground(true);
    // 起点を設定
    $textStamp->setXIndent(100);
    $textStamp->setYIndent(100);
    // スタンプを回転
    $textStamp->setRotate((new Rotation())->On90);
    // テキストプロパティを設定
    $fontRepository = new FontRepository();
    $fontStyles = new FontStyles();
    $textStamp->getTextState()->setFont($fontRepository->findFont("Arial"));
    $textStamp->getTextState()->setFontSize(14);
    $textStamp->getTextState()->setFontStyle($fontStyles->Bold | $fontStyles->Italic);
    $textStamp->getTextState()->setForegroundColor($colors->getGreen());

    // 特定のページにスタンプを追加
    $pages->get_Item(1)->addStamp($textStamp);

    // 出力ドキュメントを保存
    $document->save($outputFile);
    $document->close();

TextStampオブジェクトの配置を定義する

PDFドキュメントに透かしを追加することは、頻繁に要求される機能の1つであり、Aspose.PDF for PHP via Javaは画像やテキストの透かしを追加することが完全に可能です。TextStampクラスは、PDFファイルにテキストスタンプを追加する機能を提供します。最近では、TextStampオブジェクトを使用する際に、テキストの配置を指定する機能をサポートする必要がありました。この要件を満たすために、TextStampクラスにsetTextAlignment(..)メソッドを導入しました。このメソッドを使用することで、水平テキスト配置を指定できます。

次のコードスニペットは、既存のPDFドキュメントを読み込み、TextStampを追加する例を示しています。


    // ドキュメントを開く
    $document = new Document($inputFile);        
    $pages = $document->getPages();
    $colors = new Color();

    // サンプル文字列でFormattedTextオブジェクトをインスタンス化
    $text = new FormattedText("This");

    // FormattedTextに新しいテキスト行を追加
    $text->addNewLineText("is sample");
    $text->addNewLineText("Center Aligned");
    $text->addNewLineText("TextStamp");
    $text->addNewLineText("Object");
    
    // テキストスタンプを作成
    $textStamp = new TextStamp($text);

    // テキストスタンプの水平配置を中央揃えに指定
    $textStamp->setHorizontalAlignment((new HorizontalAlignment)->getCenter());
    // テキストスタンプの垂直配置を中央揃えに指定
    $textStamp->setVerticalAlignment((new VerticalAlignment())->getCenter);
    // TextStampのテキスト水平配置を中央揃えに指定
    $textStamp->setTextAlignment((new HorizontalAlignment)->getCenter());
    // スタンプオブジェクトの上部余白を設定
    $textStamp->setTopMargin(20);
    
    // 特定のページにスタンプを追加
    $pages->get_Item(1)->addStamp($textStamp);

    // 出力ドキュメントを保存
    $document->save($outputFile);
    $document->close();  

PDFファイルにスタンプとして塗りつぶしストロークテキストを追加

テキストの追加と編集のシナリオにおけるレンダリングモードの設定を実装しました。ストロークテキストをレンダリングするには、TextStateオブジェクトを作成し、RenderingModeをTextRenderingMode.StrokeTextに設定し、またStrokingColorプロパティの色を選択します。その後、bindTextState()メソッドを使用してTextStateをスタンプにバインドします。

次のコードスニペットは、塗りつぶしストロークテキストを追加する方法を示しています。


   // 高度なプロパティを転送するためのTextStateオブジェクトを作成します
    $ts = new TextState();
        
    // ストロークの色を設定します
    $ts->setStrokingColor((new Color())->getGray());

    // テキストレンダリングモードを設定します
    $ts->setRenderingMode(TextRenderingMode::$StrokeText);

    // 入力PDFドキュメントを読み込みます
    $fileStamp = new PdfFileStamp(new Document($inputFile));

    $stamp = new Stamp();
    $stamp->bindLogo(
        new FormattedText("PAID IN FULL",
            (new Color())->getGray(), "Arial",
            facades_EncodingType::$WinAnsi,
            true, 78));

    // TextStateをバインドします
    $stamp->bindTextState($ts);
    
    // X,Yの原点を設定します
    $stamp->setOrigin(100, 100);
    $stamp->setOpacity (5);
    $stamp->setBlendingSpace(BlendingColorSpace::$DeviceRGB);
    $stamp->setRotation (45.0);
    $stamp->setBackground(false);

    // スタンプを追加します
    $fileStamp->addStamp($stamp);
    $fileStamp->save($outputFile);
    $fileStamp->close();