スタンプクラス

.NET 経由の Python 用 Aspose.PDF は スタンプ 再利用可能なビジュアルコンテンツを PDF ページに配置するためのクラス。スタンプは、テキスト、画像、または別の PDF のページをもとにしたり、配置、回転、スタイルを設定したり、特定のページのみに限定したりできます。

この記事では、一般的なスタンプワークフローをいくつか紹介します。

  1. テキストベースのスタンプ用に再利用可能なテキストリソースを作成します。
  2. 画像と PDF ページのスタンプを追加します。
  3. スタイル付きのテキストスタンプを追加します。
  4. スタンプを選択したページに制限します。
  5. 背景画像スタンプを設定します。

この例では 2 つの補助関数を使用しています。1 つはテキストベースのスタンプ用にフォーマットされたテキストを作成し、もう 1 つは TextState テキストスタンプのスタイル設定に使用されるオブジェクト。

import sys
from os import path

import aspose.pdf as ap
import aspose.pdf.facades as pdf_facades
import aspose.pydrawing as drawing

from config import initialize_data_dir, set_license


def _create_text_logo(text: str) -> pdf_facades.FormattedText:
    """Create formatted text for text stamp examples."""
    return pdf_facades.FormattedText(
        text,
        drawing.Color.blue,
        drawing.Color.light_gray,
        pdf_facades.FontStyle.HELVETICA_BOLD,
        pdf_facades.EncodingType.WINANSI,
        True,
        14,
    )


def _create_text_state() -> ap.text.TextState:
    """Create a text state used to style text stamps."""
    text_state = ap.text.TextState()
    text_state.foreground_color = ap.Color.dark_blue
    text_state.font_size = 16
    text_state.font_style = ap.text.FontStyles.BOLD
    return text_state

画像スタンプの追加

使用 bind_image() スタンプにロゴ、バッジ、アイコンなどの画像を表示する必要がある場合。イメージをバインドしたら、ドキュメントに追加する前にスタンプ ID とオリジンを設定できます。

import sys
from os import path

import aspose.pdf as ap
import aspose.pdf.facades as pdf_facades
import aspose.pydrawing as drawing

from config import initialize_data_dir, set_license


def add_image_stamp(infile: str, image_file: str, outfile: str) -> None:
    """Add an image stamp to the PDF."""
    pdf_stamper = pdf_facades.PdfFileStamp()
    try:
        pdf_stamper.bind_pdf(infile)

        stamp = pdf_facades.Stamp()
        stamp.bind_image(image_file)
        stamp.stamp_id = 1
        stamp.set_origin(36, 520)

        pdf_stamper.add_stamp(stamp)
        pdf_stamper.save(outfile)
    finally:
        pdf_stamper.close()

PDF ページをスタンプとして追加

使用 bind_pdf() 別のPDFファイルのページをスタンプの内容として使用したい場合。これは、承認書、テンプレート、または別の文書に保存されている作成済みの視覚要素などのオーバーレイに役立ちます。

import sys
from os import path

import aspose.pdf as ap
import aspose.pdf.facades as pdf_facades
import aspose.pydrawing as drawing

from config import initialize_data_dir, set_license


def add_pdf_page_as_stamp(infile: str, stamp_pdf: str, outfile: str) -> None:
    """Add the first page of another PDF as a stamp."""
    pdf_stamper = pdf_facades.PdfFileStamp()
    try:
        pdf_stamper.bind_pdf(infile)

        stamp = pdf_facades.Stamp()
        stamp.bind_pdf(stamp_pdf, 1)
        stamp.page_number = 1
        stamp.set_origin(36, 250)

        pdf_stamper.add_stamp(stamp)
        pdf_stamper.save(outfile)
    finally:
        pdf_stamper.close()

テキストステート付きのテキストスタンプの追加

使用 bind_logo() と一緒に bind_text_state() カスタムフォントスタイルでテキストベースのスタンプを作成したいとき。この方法は、承認マーク、ラベル、およびワークフロー固有の注釈に役立ちます。

import sys
from os import path

import aspose.pdf as ap
import aspose.pdf.facades as pdf_facades
import aspose.pydrawing as drawing

from config import initialize_data_dir, set_license


def add_text_stamp_with_text_state(infile: str, outfile: str) -> None:
    """Add a text stamp and style it with a TextState object."""
    pdf_stamper = pdf_facades.PdfFileStamp()
    try:
        pdf_stamper.bind_pdf(infile)

        stamp = pdf_facades.Stamp()
        stamp.bind_logo(_create_text_logo("Approved by signing workflow"))
        stamp.bind_text_state(_create_text_state())
        stamp.set_origin(36, 700)
        stamp.rotation = 15.0

        pdf_stamper.add_stamp(stamp)
        pdf_stamper.save(outfile)
    finally:
        pdf_stamper.close()

特定のページにスタンプを追加する

スタンプがすべてのページに表示されないようにするには、ターゲットページ番号をに割り当ててください pages 財産。この例では、最初のページにのみイメージスタンプを追加します。

import sys
from os import path

import aspose.pdf as ap
import aspose.pdf.facades as pdf_facades
import aspose.pydrawing as drawing

from config import initialize_data_dir, set_license


def add_stamp_to_specific_pages(infile: str, image_file: str, outfile: str) -> None:
    """Add an image stamp only to the selected pages."""
    pdf_stamper = pdf_facades.PdfFileStamp()
    try:
        pdf_stamper.bind_pdf(infile)

        stamp = pdf_facades.Stamp()
        stamp.bind_image(image_file)
        stamp.pages = [1]
        stamp.set_origin(400, 40)
        stamp.set_image_size(120, 60)

        pdf_stamper.add_stamp(stamp)
        pdf_stamper.save(outfile)
    finally:
        pdf_stamper.close()

背景画像スタンプの追加

ページコンテンツの背後に画像が表示される場合は、背景スタンプを使用してください。スタンプの不透明度、回転、品質、サイズ、位置を制御して、透かしのような効果を作成することもできます。

import sys
from os import path

import aspose.pdf as ap
import aspose.pdf.facades as pdf_facades
import aspose.pydrawing as drawing

from config import initialize_data_dir, set_license


def add_background_image_stamp(infile: str, image_file: str, outfile: str) -> None:
    """Add a rotated background image stamp with opacity and quality settings."""
    pdf_stamper = pdf_facades.PdfFileStamp()
    try:
        pdf_stamper.bind_pdf(infile)

        stamp = pdf_facades.Stamp()
        stamp.bind_image(image_file)
        stamp.is_background = True
        stamp.opacity = 0.35
        stamp.quality = 90
        stamp.rotation = 45.0
        stamp.set_image_size(160, 80)
        stamp.set_origin(200, 300)

        pdf_stamper.add_stamp(stamp)
        pdf_stamper.save(outfile)
    finally:
        pdf_stamper.close()

関連ファサードトピック