PythonでPowerPointPPTに透かしを追加する

透かしは通常、ドキュメントを保護したり、ドキュメントの所有権を指定したりするために使用されます。一方、原稿やドラフトなどのドキュメントのステータスを表示するために使用されます。この記事では、PowerPointプレゼンテーションに透かしを挿入する方法を示します。 PythonでPowerPointPPTスライドにテキストまたは画像の透かしを追加する方法を学習します。

PowerPointスライドに透かしを追加するPythonライブラリ

PPTスライドの透かしを追加または削除するには、Aspose.Slides for Python via .NETを使用します。このライブラリを使用すると、Pythonアプリケーション内からPowerPointプレゼンテーションをシームレスに作成および操作できます。次のpipコマンドを使用して、PyPIからライブラリをインストールします。

> pip install aspose.slides

PythonでPowerPointPPTスライドに透かしを追加する

PowerPointスライドに追加できる透かしには、画像とテキストの2種類があります。画像ベースの透かしでは、画像がPPTスライドに追加されます。一方、テキストベースの透かしの場合は、テキストフラグメントがスライドに配置されます。次のセクションでは、両方のタイプの透かしについて明示的に説明します。

PythonのPowerPointスライドにテキスト透かしを追加する

以下は、PythonでPPTスライドにテキスト透かしを追加する手順です。

  • まず、Presentationクラスを使用してPowerPoint PPT/PPTXをロードします。
  • 透かしを追加するスライドの参照を取得します。
  • 透かしの位置を計算します。
  • add \ auto \ shape()メソッドを使用して、透かしの新しい自動形状を追加します。
  • add \ text \ frame()メソッドを使用して、図形にテキストフレームを追加します。
  • 透かしのフォントサイズ、色、順序、回転角度を設定します。
  • 透かしをロックして、削除や変更を回避します。
  • 最後に、Presentation.save(string, SaveFormat)メソッドを使用して、更新されたPowerPointファイルを保存します。

次のコードサンプルは、PowerPointスライドにテキスト透かしを追加する方法を示しています。

import aspose.slides as slides
import aspose.pydrawing as drawing

# load presentation
with slides.Presentation("presentation.pptx") as presentation:
    # select slide
    slide = presentation.slides[0]

    # set watermark position
    center = drawing.PointF(presentation.slide_size.size.width / 2, presentation.slide_size.size.height / 2)
    width = 300
    height = 300
    x = center.x - width / 2
    y = center.y - height / 2

    # add watermark
    watermarkShape = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, x, y, height, width)
    watermarkShape.name = "watermark"
    watermarkShape.fill_format.fill_type = slides.FillType.NO_FILL
    watermarkShape.line_format.fill_format.fill_type = slides.FillType.NO_FILL

    # set watermark text, font and color
    watermarkTextFrame = watermarkShape.add_text_frame("Watermark")
    watermarkPortion = watermarkTextFrame.paragraphs[0].portions[0]
    watermarkPortion.portion_format.font_height = 52        
    watermarkPortion.portion_format.fill_format.fill_type = slides.FillType.SOLID
    watermarkPortion.portion_format.fill_format.solid_fill_color.color = drawing.Color.red

    # lock watermark to avoid modification
    watermarkShape.shape_lock.select_locked = True
    watermarkShape.shape_lock.size_locked = True
    watermarkShape.shape_lock.text_locked = True
    watermarkShape.shape_lock.position_locked = True
    watermarkShape.shape_lock.grouping_locked = True

    # set rotation
    watermarkShape.rotation = -45

    # send to back
    slide.shapes.reorder(0, watermarkShape)

    # save presentation
    presentation.save("text-watermark-slide.pptx", slides.export.SaveFormat.PPTX)

次のコードサンプルに示すように、すべてのスライドに透かしを追加するには、スライドをループするか、マスタースライドに透かしを追加します。

import aspose.slides as slides
import aspose.pydrawing as drawing

# load presentation
with slides.Presentation("presentation.pptx") as presentation:
    # select slide
    master = presentation.masters[0]

    # set watermark position
    center = drawing.PointF(presentation.slide_size.size.width / 2, presentation.slide_size.size.height / 2)
    width = 300
    height = 300
    x = center.x - width / 2
    y = center.y - height / 2

    # add watermark
    watermarkShape = master.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, x, y, height, width)
    watermarkShape.name = "watermark"
    watermarkShape.fill_format.fill_type = slides.FillType.NO_FILL
    watermarkShape.line_format.fill_format.fill_type = slides.FillType.NO_FILL

    # set watermark text, font and color
    watermarkTextFrame = watermarkShape.add_text_frame("Watermark")
    watermarkPortion = watermarkTextFrame.paragraphs[0].portions[0]
    watermarkPortion.portion_format.font_height = 52        
    watermarkPortion.portion_format.fill_format.fill_type = slides.FillType.SOLID
    watermarkPortion.portion_format.fill_format.solid_fill_color.color = drawing.Color.red

    # lock watermark to avoid modification
    watermarkShape.shape_lock.select_locked = True
    watermarkShape.shape_lock.size_locked = True
    watermarkShape.shape_lock.text_locked = True
    watermarkShape.shape_lock.position_locked = True
    watermarkShape.shape_lock.grouping_locked = True

    # send to back
    master.shapes.reorder(0, watermarkShape)

    # set rotation
    watermarkShape.rotation = -45

    # save presentation
    presentation.save("text-watermark-ppt.pptx", slides.export.SaveFormat.PPTX)

以下は、透かしを追加した後のPowerPointスライドのスクリーンショットです。

PythonのPowerPointスライドにテキスト透かしを追加する

PythonでPowerPointスライドに画像透かしを追加する

以下は、PythonでPowerPointスライドに画像透かしを追加する手順です。

  • まず、Presentationクラスを使用してPowerPointプレゼンテーションをロードします。
  • 透かしを追加するスライドの参照を取得します。
  • 透かしの位置を計算します。
  • ファイルから透かし画像をロードします。
  • add \ auto \ shape()メソッドを使用して透かしの新しい形状を追加し、shape.fill \ format.fill\typeをFillType.PICTUREに設定します。
  • shape.fill \ format.picture \ fill\format.picture.imageプロパティを使用して透かし画像を設定します。
  • 透かしの順序を設定し、変更を避けるためにロックします。
  • 最後に、Presentation.save(string, SaveFormat)メソッドを使用して、更新されたPPTを保存します。

次のコードサンプルは、PowerPointスライドに画像透かしを追加する方法を示しています。

import aspose.slides as slides
import aspose.pydrawing as drawing

# load presentation
with slides.Presentation("presentation.pptx") as presentation:
    # select slide
    slide = presentation.slides[0]

    # set watermark position
    center = drawing.PointF(presentation.slide_size.size.width / 2, presentation.slide_size.size.height / 2)
    width = 100
    height = 100
    x = center.x - width / 2
    y = center.y - height / 2

    # load image
    with open("python-logo.png", "rb") as fs:
        data = fs.read()
        image = presentation.images.add_image(data)

        # add watermark
        watermarkShape = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, x, y, height, width)
        watermarkShape.name = "watermark"

        # set image for watermark
        watermarkShape.fill_format.fill_type = slides.FillType.PICTURE
        watermarkShape.fill_format.picture_fill_format.picture.image = image
        watermarkShape.fill_format.picture_fill_format.picture_fill_mode = slides.PictureFillMode.STRETCH
        watermarkShape.line_format.fill_format.fill_type = slides.FillType.NO_FILL

        # send to back
        slide.shapes.reorder(0, watermarkShape)

        # lock watermark to avoid modification
        watermarkShape.shape_lock.select_locked = True
        watermarkShape.shape_lock.size_locked = True
        watermarkShape.shape_lock.text_locked = True
        watermarkShape.shape_lock.position_locked = True
        watermarkShape.shape_lock.grouping_locked = True

    # save presentation
    presentation.save("image-watermark-ppt.pptx", slides.export.SaveFormat.PPTX)

以下は、画像の透かしを追加した後のPPTスライドのスクリーンショットです。

PythonでPowerPointスライドに画像透かしを追加する

PythonでPPTスライドから透かしを削除する

前のセクションでは、透かしの形に名前が割り当てられていることに気付いたはずです。この名前は、透かしとして使用される形状をフィルタリングするために使用されます。したがって、透かしの形状に簡単にアクセス、変更、または削除できます。次のコードサンプルは、PythonでPPTスライドに追加した透かしを削除する方法を示しています。

import aspose.slides as slides
import aspose.pydrawing as drawing

# load presentation
with slides.Presentation("text-watermark-slide.pptx") as presentation:
    # select slide
    slide = presentation.slides[0]

    shapesToRemove=[]

    # loop through all the shapes in slide
    for i in range(len(slide.shapes)):
        shape = slide.shapes[i]

        # if shape is watermark
        if shape.name == "watermark":                
            shapesToRemove.append(shape)

    # loop through all the shapes to be removed
    for i in range(len(shapesToRemove)):
        # remove shape
        slide.shapes.remove(shapesToRemove[i])

    # save presentation
    presentation.save("remove-watermark.pptx", slides.export.SaveFormat.PPTX)

無料ライセンスを取得する

一時ライセンスをリクエストすることで、評価の制限なしに.NET経由でAspose.Slides for Pythonを使用できます。

結論

この記事では、PythonでPowerPointスライドに透かしを追加する方法を学びました。 PPTスライドにテキストと画像の透かしを追加する方法について説明しました。さらに、プログラムでPowerPointPPTから透かしを削除する方法を見てきました。さらに、ドキュメントを読んで、Python用のAspose.Slidesの他の機能を調べることができます。また、フォーラムにクエリを投稿することもできます。

関連項目

情報:Aspose.Slidesが提供する無料のオンラインツールをチェックして、PowerPointプレゼンテーションから透かしを追加および透かしを削除することができます。