デジタルオフィスの時代において、Pythonはオフィス文書の自動処理に最適なツールとなっています。PowerPointの画像管理に関しては、Pythonを使用することで、複数のPowerPointファイルの一括操作が可能になり、手動操作によるエラーを減らすことができます。この記事では、無料のPythonライブラリを使ってPowerPointスライドに画像を追加する方法、またはPowerPointから画像を削除する方法を紹介します。
無料のPythonライブラリをインストールする
この作業には、Free Spire.Presentation for Python ライブラリが必要です。以下の pip コマンドを使ってインストールできます。
pip install Spire.Presentation.Free
PythonでPowerPointスライドに画像を追加する
無料のPythonライブラリが提供する ISlide.Shapes.AppendEmbedImageByImageData()
メソッドを使用することで、指定されたスライドに画像を追加することができます。操作手順は以下の通りです。
- PowerPointプレゼンテーションを作成し、
Presentation.Slides[index]
プロパティを介してその中の指定されたスライドを取得します。 - 画像を読み込み、スライド上での画像の位置を指定します。
-
ISlide.Shapes.AppendEmbedImageByPath()
メソッドを介して、画像をスライドに追加します。 -
Presentation.SaveToFile()
メソッドを使用して、生成されたプレゼンテーションを保存します。
Pythonコード
from spire.presentation.common import *
import math
from spire.presentation import *
# PowerPoint プレゼンテーションの作成
presentation = Presentation()
# 最初のスライドを取得する
slide = presentation.Slides[0]
# 画像を読み込む
imageFile = "logo.png"
# スライド内で画像の位置を指定する
left = math.trunc(presentation.SlideSize.Size.Width / float(2)) -100
rect1 = RectangleF.FromLTRB (left, 120, 180 + left, 300)
# スライドに埋め込み画像を追加する
image = slide.Shapes.AppendEmbedImageByPath (ShapeType.Rectangle, imageFile, rect1)
# 画像の外枠線を塗りつぶしなしの効果に設定する
image.Line.FillType = FillFormatType.none
# PowerPoint 文書を保存する
presentation.SaveToFile("AddPowerPointImage.pptx", FileFormat.Pptx2016)
presentation.Dispose()
Python で PowerPoint のスライドから画像を削除する
PowerPoint のスライド内のすべての画像を削除するには、スライド内の各シェイプを反復処理し、シェイプ内の画像のタイプ(SlidePicture
)を特定し、その後 ISlide.Shapes.Remove(Index)
メソッドを使って画像を削除します。
-
Presentation.LoadFromFile()
メソッドを使って PowerPoint 文書を読み込みます。 -
Presentation.Slides[index]
プロパティを使って指定されたスライドを取得します。 - 指定されたスライド上のすべてのシェイプを反復処理します。
- 現在のシェイプが
SlidePicture
のタイプかどうかを判定し、そうであればISlide.Shapes.Remove(Index)
を使って画像を削除します。 -
Presentation.SaveToFile()
メソッドを使って生成されたファイルを保存します。
Pythonコード
from spire.presentation.common import *
from spire.presentation import *
# PowerPoint プレゼンテーションの作成
ppt = Presentation()
ppt.LoadFromFile("AddPowerPointImage.pptx ")
# 最初のスライドを取得する
slide = ppt.Slides[0]
# スライド内のすべてのシェイプを反復処理する
for i in range(slide.Shapes.Count - 1, -1, -1):
# 現在のシェイプが画像(SlidePicture)であるかどうかを判定する
if isinstance(slide.Shapes[i], SlidePicture):
# もし画像であれば、そのシェイプをスライドから削除する
slide.Shapes.RemoveAt(i)
# PowerPoint 文書を保存する
ppt.SaveToFile("RemovePowerPointImage.pptx", FileFormat.Pptx2016)
ppt.Dispose()
上記の例では、Python を使って PowerPoint の画像を追加および削除することができます。さらに、この無料ライブラリは PowerPoint から画像を抽出することもサポートしています。