PythonでPowerPointの図形を操作する

PowerPointプレゼンテーションでは、コンテンツをより精巧にするために、さまざまな種類の図が使用されています。これらの図は、楕円、線、長方形、コネクタなどのさまざまな形状で構成されています。この記事では、PythonでプログラムによってPowerPointスライドの図形を追加、複製、および削除する方法を学習します。

PowerPointシェイプを操作するPythonライブラリ

Aspose.Slides for Python via .NETは、Pythonアプリケーション内からPowerPointプレゼンテーションを作成および操作するように設計されています。このライブラリを使用して、PowerPointスライドの図形を操作します。次のpipコマンドを使用して、PyPIからインストールできます。

> pip install aspose.slides

PowerPointの図形の種類

Aspose.Slides for Pythonを使用して、PowerPointプレゼンテーションでさまざまな図形を作成できます。最も一般的に使用される形状は次のとおりです。

PythonでPowerPointスライドに図形を追加する

楕円、線、長方形を含む任意の形状を追加するには、addautoshape(ShapeType、Single、Single、Single、Single)メソッドを使用して、形状のタイプやその他の必要なパラメーターを渡すことができます。 ShapeType列挙型は、形状のタイプを指定するために使用されます。以下は、PythonでPowerPointスライドに図形を追加する手順です。

  1. プレゼンテーションを作成するか、Presentationクラスを使用して既存のプレゼンテーションをロードします。
  2. Presentation.slidesコレクションから目的のスライドの参照を取得します。
  3. addautoshape(ShapeType、Single、Single、Single、Single)メソッドを使用して、楕円(またはその他の形状)を追加します。
  4. Presentation.save(String, SaveFormat)メソッドを使用してプレゼンテーションを保存します。

次のコードサンプルは、PythonでPowerPointスライドに図形を追加する方法を示しています。

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

# Create a new presentation
with slides.Presentation() as pres:
    # Get the first slide
    sld = pres.slides[0]

    # Add auto shape of ellipse type
    shp = sld.shapes.add_auto_shape(slides.ShapeType.ELLIPSE, 50, 150, 150, 50)

    # Apply some formatting to ellipse shape
    shp.fill_format.fill_type = slides.FillType.SOLID
    shp.fill_format.solid_fill_color.color = drawing.Color.pink

    # Apply some formatting to the line of Ellipse
    shp.line_format.fill_format.fill_type = slides.FillType.SOLID
    shp.line_format.fill_format.solid_fill_color.color = drawing.Color.purple
    shp.line_format.width = 5

    # Save the PPTX file to disk
    pres.save("add-ellipse.pptx", slides.export.SaveFormat.PPTX)

以下は、上記のコードサンプルを使用して追加した楕円です。

PythonでPowerPointPPTに図形を追加する

PythonでPowerPointシェイプをコネクタに接続する

ダイアグラムでは、コネクタと呼ばれる線を使用してさまざまな形状が相互に接続されています。コネクタは直線でも曲線でもかまいません。 Pythonで2つのPowerPoint図形の間にコネクタを追加する方法を見てみましょう。

  1. まず、Presentationクラスのインスタンスを作成して、プレゼンテーションを作成またはロードします。
  2. 次に、Presentation.slidesコレクションを使用してスライドの参照を取得します。
  3. 前のセクションで追加したのと同じように2つの形状を追加し、それらの参照を取得します。
  4. addconnector(ShapeType、Single、Single、Single、Single)メソッドを使用してコネクタを作成します。
  5. Connector.startshapeconnectedtoプロパティとConnector.endshapeconnectedtoプロパティを使用して図形を結合します。
  6. Connector.reroute()メソッドを呼び出して、最短の自動接続パスを作成します。
  7. 最後に、Presentation.save(string, SaveFormat)メソッドを使用してプレゼンテーションを保存します。

次のコードサンプルは、PythonでPowerPointスライドの図形を接続する方法を示しています。

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

# Create presentation
with slides.Presentation() as presentation:
    # Access shapes collection for selected slide
    shapes = presentation.slides[0].shapes

    # Add ellipse
    ellipse = shapes.add_auto_shape(slides.ShapeType.ELLIPSE, 0, 100, 100, 100)

    # Add auto shape rectangle
    rectangle = shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 100, 300, 100, 100)

    # Add connector to connect shapes
    connector = shapes.add_connector(slides.ShapeType.BENT_CONNECTOR2, 0, 0, 10, 10)

    # Join shapes using connector
    connector.start_shape_connected_to = ellipse
    connector.end_shape_connected_to = rectangle

    # Call reroute to set the automatic shortest path between shapes
    connector.reroute()

    # Save presenation
    presentation.save("add-connector.pptx", slides.export.SaveFormat.PPTX)

以下は、図形をコネクタで接続した後のプレゼンテーションのスクリーンショットです。

PythonでPowerPointシェイプをコネクタに接続する

PythonでPowerPointの図形を複製する

新しいシェイプを作成する代わりに、シェイプのクローンを作成することを選択する場合があります。これを実現するために、Aspose.Slidesはシェイプのクローン作成をサポートしています。以下は、Pythonを使用してPowerPointで図形のクローンを作成する手順です。

  1. まず、Presentationクラスを使用してプレゼンテーションファイルをロードします。
  2. Presentation.slidesコレクションからスライドの参照を取得します。
  3. ISlide.shapesコレクションからソースと宛先のスライドシェイプにアクセスします。
  4. addclone()メソッドを使用して、ソーススライドシェイプコレクションからデスティネーションスライドにシェイプを複製します。
  5. 最後に、更新されたプレゼンテーションファイルを保存します。

次のコードサンプルは、PythonのPowerPointスライド内で図形を複製する方法を示しています。

import aspose.slides as slides

# Load presentation
with slides.Presentation("add-ellipse.pptx") as presentation:
    # Access shapes of the source slide
    sourceShapes = presentation.slides[0].shapes

    # Add a new blank slide
    blankLayout = presentation.masters[0].layout_slides.get_by_type(slides.SlideLayoutType.BLANK)
    destSlide = presentation.slides.add_empty_slide(blankLayout)

    # Access shapes of destination slide
    destShapes = destSlide.shapes

    # Clone shapes
    destShapes.add_clone(sourceShapes[0], 50, 150 + sourceShapes[0].height)
    destShapes.add_clone(sourceShapes[0])                 
    destShapes.insert_clone(0, sourceShapes[0], 50, 150)

    # Save file
    presentation.save("clone-shapes.pptx", slides.export.SaveFormat.PPTX)

PythonでPowerPointスライドから図形を削除する

以下の手順に従って、PowerPointプレゼンテーションから図形を削除することもできます。

  1. Presentationクラスのインスタンスを作成して、PPT/PPTXファイルをロードします。
  2. Presentation.slidesコレクションから目的のスライドにアクセスします。
  3. IShape.alternativetextプロパティを使用して、特定のテキストで目的の形状をフィルタリングします。
  4. ISlide.shapes.remove(IShape)メソッドを使用して形状を削除します。
  5. 最後に、更新されたプレゼンテーションファイルを保存します。

次のコードサンプルは、PythonでPowerPointスライドから図形を削除する方法を示しています。

# Load presentation
with slides.Presentation("add-ellipse.pptx") as presentation:
    # Get the first slide
    sld = presentation.slides[0]

    alttext = "User Defined"

    # Loop through shapes
    for i in range(len(sld.shapes)):
        # Find shape by alternative text
        ashp = sld.shapes[0]
        if ashp.alternative_text == alttext:
            sld.shapes.remove(ashp)

    # Save file
    presentation.save("remove-shapes.pptx", slides.export.SaveFormat.PPTX)

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

無料の一時ライセンスを取得して、評価の制限なしにAspose.Slides for Pythonを使用できます。

結論

MS PowerPointは、フローチャートなどのさまざまな種類の図を作成するためのさまざまな形状をサポートしています。この記事では、楕円や長方形などのPowerPoint図形を作成し、Pythonでコネクタを使用してそれらを接続する方法について説明しました。さらに、PowerPointスライドの図形をプログラムで複製および削除する方法を学習しました。 ドキュメントを使用して、Python用のAspose.Slidesの詳細を調べることができます。また、フォーラムからお気軽にお問い合わせください。

関連項目