チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

チュートリアル»Python»Spire.Presentation for Python»透かし»Python で PowerPoint にテキストまたは画像の透かしを追加する方法
2026-08-14

Python で PowerPoint にテキストまたは画像の透かしを追加する方法

透かし(ウォーターマーク) は、スライド上に配置される目立たないオーバーレイであり、通常はテキストや画像の形式で、メッセージ、著作権情報、会社のロゴ、その他の視覚要素を伝えることができます。PowerPoint プレゼンテーションに透かしを組み込むことで、プロフェッショナル感を高め、ブランディングを強化し、資料の不正使用や不正配布を抑止できます。

Spire.Presentation for Python を使用すると、開発者は数行のコードで PowerPoint プレゼンテーションにテキストまたは画像の透かしを追加できます。本記事では、テキストの透かしと画像の透かしを追加する方法を紹介します。

クイックナビゲーション

1. Spire.Presentation for Python のインストール

このシナリオには Spire.Presentation for Python と plum-dispatch v1.7.4 が必要です。pip を介してインストールします。

pip install Spire.Presentation

Python スクリプトで必要なモジュールをインポートします。

from spire.presentation.common import *
from spire.presentation import *

または、Spire.Presentation for Python のダウンロードページ から手動でライブラリをインストールすることもできます。

2. Python で PowerPoint にテキストの透かしを追加

MS Word とは異なり、PowerPoint には各スライドに透かしを適用する組み込み機能がありません。ただし、テキストまたは画像を含むシェイプを追加して、透かしの効果を再現できます。シェイプは ISlide.Shapes.AppendShape() メソッドでスライドに追加でき、シェイプのテキストは IAutoShape.TextFrame.Text プロパティで設定できます。シェイプがスライド上の既存のコンテンツに重ならないようにするには、シェイプを最背面に送ることをお勧めします。

次の例では、各スライドにテキストの透かしを追加し、シェイプとテキスト範囲のスタイルを設定した後、シェイプを最背面に送る方法を示します。

from spire.presentation.common import *
from spire.presentation import *

# Presentation オブジェクトを作成
presentation = Presentation()

# PowerPoint ファイルを読み込む
presentation.LoadFromFile("Sample.pptx")

# 長方形を定義
left = (presentation.SlideSize.Size.Width - 350.0) / 2
top = (presentation.SlideSize.Size.Height - 110.0) / 2
rect = RectangleF(left, top, 350.0, 110.0)

for i in range(0, presentation.Slides.Count):

    # 長方形のシェイプを追加
    shape = presentation.Slides[i].Shapes.AppendShape(
    ShapeType.Rectangle, rect)
    
    # シェイプのスタイルを設定
    shape.Fill.FillType = FillFormatType.none
    shape.ShapeStyle.LineColor.Color = Color.get_Transparent()
    shape.Rotation = -35
    shape.Locking.SelectionProtection = True
    shape.Line.FillType = FillFormatType.none

    # シェイプにテキストを追加
    shape.TextFrame.Text = "機密"
    textRange = shape.TextFrame.TextRange

    # テキスト範囲のスタイルを設定
    textRange.Fill.FillType = FillFormatType.Solid
    textRange.Fill.SolidColor.Color = Color.FromArgb(120, Color.get_Black().R, Color.get_HotPink().G, Color.get_HotPink().B)
    textRange.FontHeight = 68
    textRange.LatinFont = TextFont("Yu Gothic UI Semibold")

    # シェイプを最背面に送る
    shape.SetShapeArrange(ShapeArrange.SendToBack)

# ファイルに保存
presentation.SaveToFile("output/TextWatermark.pptx", FileFormat.Pptx2010)
presentation.Dispose()

Python で PowerPoint にテキストの透かしを追加

3. Python で PowerPoint に画像の透かしを追加

画像の透かしを追加するには、まず画像と同じサイズの長方形を作成する必要があります。次に、この画像でシェイプを塗りつぶし、シェイプをスライドの中央に配置します。シェイプがスライド上の既存のコンテンツに重ならないようにするには、シェイプを最背面に送る必要もあります。次の例では、各スライドの中央に画像の透かしを追加する方法を示します。

from spire.presentation.common import *
from spire.presentation import *

# Presentation オブジェクトを作成
presentation = Presentation()

# PowerPoint ファイルを読み込む
presentation.LoadFromFile("Sample.pptx")

# 画像を読み込む
stream = Stream("Watermark.png")
image = presentation.Images.AppendStream(stream)
stream.Close()

# 画像の幅と高さを取得
width = (float)(image.Width)
height = (float)(image.Height)

slideSize = presentation.SlideSize.Size

# プレゼンテーション内のスライドをループ処理
for i in range(0, presentation.Slides.Count):

    # 特定のスライドを取得
    slide = presentation.Slides[i]

    # スライドにシェイプを追加
    shape = slide.Shapes.AppendShape(ShapeType.Rectangle, RectangleF((slideSize.Width - width )/2, (slideSize.Height - height)/2, width, height))

    # シェイプを画像で塗りつぶす
    shape.Line.FillType = FillFormatType.none
    shape.Locking.SelectionProtection = True
    shape.Fill.FillType =  FillFormatType.Picture
    shape.Fill.PictureFill.FillType = PictureFillType.Stretch
    shape.Fill.PictureFill.Picture.EmbedImage = image

    # シェイプを最背面に送る
    shape.SetShapeArrange(ShapeArrange.SendToBack)

# ファイルに保存
presentation.SaveToFile("output/ImageWatermark.pptx", FileFormat.Pptx2013)
presentation.Dispose()

Python で PowerPoint に画像の透かしを追加

まとめ

本記事では、Spire.Presentation for Python を使用して Python で PowerPoint プレゼンテーションにテキストまたは画像の透かしを追加する方法を実証しました。ISlide.Shapes.AppendShape() メソッドと IAutoShape.TextFrame.Text プロパティでテキストの透かしを追加し、IAutoShape.Fill.PictureFill.Picture.EmbedImage プロパティで画像の透かしを追加できます。いずれの場合も、シェイプを最背面に送ることで、スライド上の既存コンテンツに重ならないようにできます。これらの機能は、機密資料への透かし入れ、ブランディングの強化、社内向け資料の一括配布などの自動化シナリオに役立ちます。

Spire.Presentation for Python の全機能を評価したい場合は、30 日間の無料ライセンスを申請できます。

5. FAQ

Microsoft PowerPoint をインストールせずに透かしを追加できますか?

はい。Spire.Presentation はスタンドアロンのライブラリであり、Microsoft Office や PowerPoint をインストールする必要はありません。

PowerPoint には透かしを追加する組み込み機能がありますか?

いいえ。MS Word とは異なり、PowerPoint には透かしを適用する組み込み機能はありません。テキストまたは画像を含むシェイプをスライドに追加して、透かしの効果を再現します。

テキストの透かしを追加するにはどうすればよいですか?

ISlide.Shapes.AppendShape() メソッドでテキスト用のシェイプを追加し、IAutoShape.TextFrame.Text プロパティで透かしテキストを設定します。shape.SetShapeArrange(ShapeArrange.SendToBack) でシェイプを最背面に送ります。

画像の透かしを追加するにはどうすればよいですか?

Presentation.Images.AppendStream() メソッドで画像を読み込み、画像と同じサイズのシェイプをスライドに追加して、IAutoShape.Fill.PictureFill.Picture.EmbedImage プロパティでシェイプを画像で塗りつぶします。

すべてのスライドに一度に透かしを追加できますか?

はい。presentation.Slides をループ処理して、各スライドに同じ透かしを追加できます。例に示されているコードは、プレゼンテーション内のすべてのスライドに透かしを追加します。

Read 4 times