ChatGPTにパワーポイントからテキストと画像を取り出すPythonコードを書いてもらった

ChatGPTにパワーポイントからテキストと画像を取り出すPythonコードを書いてもらいました。PythonからPowerPointを操作するには「python-pptx」という外部ライブラリを使うのが定番なので、事前にインストール済みです。

 

指示文(プロンプト):

パワーポイントの内容にあるテキストと画像を取り出すPythonコードを書いて下さい。複数のスライドに画像がある場合は、保存する画像ファイル名をimage_[連番]というようにしてください。パワポから取り出した画像をすぐ確認したいので、display()関数でjupyter norebookの同じセル内に表示するようしてください。画像の表示サイズは幅300ピクセル、縦200ピクセルに縮小するようにしてください。

 

回答:

from pptx import Presentation
from pptx.enum.shapes import MSO_SHAPE_TYPE
from IPython.display import display, Image

# PowerPointファイルを読み込む
prs = Presentation('test2.pptx')

# スライドごとにループする
for i, slide in enumerate(prs.slides):
    # スライド内のすべてのオブジェクトにループする
    for shape in slide.shapes:
        # 形状が画像であるかどうかを確認する
        if shape.shape_type == MSO_SHAPE_TYPE.PICTURE:
            image = shape.image
            # 画像を縮小して表示する
            display(Image(data=image.blob, width=300, height=200))
        # 形状がテキストボックスであるかどうかを確認する
        elif shape.has_text_frame:
            text_frame = shape.text_frame
            # テキストフレームのテキストを抽出する
            text = text_frame.text
            print(text)    
結果:

以下のように成功しました。プロンプトの最後の指示は、jupyter norebookで確認したいので追加したものです。普通のpythonプログラムとして実行する場合は不要ですね。

テスト用のパワポgoogleドライブで作成している様子:

テスト用のパワポを読み込んだ結果画面: