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プログラムとして実行する場合は不要ですね。
テスト用のパワポを読み込んだ結果画面: