PowerPointプレゼンテーションでは、コンテンツをより精巧にするために、さまざまな種類の図が使用されています。これらの図は、楕円、線、長方形、コネクタなどのさまざまな形状で構成されています。この記事では、PythonでプログラムによってPowerPointスライドの図形を追加、複製、および削除する方法を学習します。
- PowerPointシェイプを操作するPythonライブラリ
- PowerPointシェイプの種類
- PowerPointスライドに図形を追加する
- PowerPointの図形にコネクタを追加する
- PowerPointスライドで図形のクローンを作成する
- 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スライドに図形を追加する手順です。
- プレゼンテーションを作成するか、Presentationクラスを使用して既存のプレゼンテーションをロードします。
- Presentation.slidesコレクションから目的のスライドの参照を取得します。
- addautoshape(ShapeType、Single、Single、Single、Single)メソッドを使用して、楕円(またはその他の形状)を追加します。
- 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でPowerPointシェイプをコネクタに接続する
ダイアグラムでは、コネクタと呼ばれる線を使用してさまざまな形状が相互に接続されています。コネクタは直線でも曲線でもかまいません。 Pythonで2つのPowerPoint図形の間にコネクタを追加する方法を見てみましょう。
- まず、Presentationクラスのインスタンスを作成して、プレゼンテーションを作成またはロードします。
- 次に、Presentation.slidesコレクションを使用してスライドの参照を取得します。
- 前のセクションで追加したのと同じように2つの形状を追加し、それらの参照を取得します。
- addconnector(ShapeType、Single、Single、Single、Single)メソッドを使用してコネクタを作成します。
- Connector.startshapeconnectedtoプロパティとConnector.endshapeconnectedtoプロパティを使用して図形を結合します。
- Connector.reroute()メソッドを呼び出して、最短の自動接続パスを作成します。
- 最後に、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の図形を複製する
新しいシェイプを作成する代わりに、シェイプのクローンを作成することを選択する場合があります。これを実現するために、Aspose.Slidesはシェイプのクローン作成をサポートしています。以下は、Pythonを使用してPowerPointで図形のクローンを作成する手順です。
- まず、Presentationクラスを使用してプレゼンテーションファイルをロードします。
- Presentation.slidesコレクションからスライドの参照を取得します。
- ISlide.shapesコレクションからソースと宛先のスライドシェイプにアクセスします。
- addclone()メソッドを使用して、ソーススライドシェイプコレクションからデスティネーションスライドにシェイプを複製します。
- 最後に、更新されたプレゼンテーションファイルを保存します。
次のコードサンプルは、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プレゼンテーションから図形を削除することもできます。
- Presentationクラスのインスタンスを作成して、PPT/PPTXファイルをロードします。
- Presentation.slidesコレクションから目的のスライドにアクセスします。
- IShape.alternativetextプロパティを使用して、特定のテキストで目的の形状をフィルタリングします。
- ISlide.shapes.remove(IShape)メソッドを使用して形状を削除します。
- 最後に、更新されたプレゼンテーションファイルを保存します。
次のコードサンプルは、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の詳細を調べることができます。また、フォーラムからお気軽にお問い合わせください。