パワーポイントに自動で画像を張り付ける
画像を張り付けるだけなのに、毎回パワーポイントを開いて作業するのは大変なので、パワーポイントでスライドショーを作るのを自動化しました。
ファイル選択画面を出現させて、そこで選択した画像が、スライドに張り付けられます。
ソースコード
from pptx import Presentation from pptx.util import Cm, Pt from PIL import Image import subprocess # モジュールのインポート import os, tkinter, tkinter.filedialog, tkinter.messagebox # ファイル選択ダイアログの表示 root = tkinter.Tk() root.withdraw() fTyp = [("","*.jpg"), ("", "*.png")] iDir = os.path.abspath(os.path.dirname(__file__)) # ここの1行を変更 askopenfilename → askopenfilenames file = tkinter.filedialog.askopenfilenames(filetypes = fTyp,initialdir = iDir) #パワーポイントを作成 prs = Presentation("template.pptx") max_height = Cm(19.05) max_width = Cm(33.867) for i in range(len(file)): layout = prs.slide_layouts[6] # 6 白紙 slide = prs.slides.add_slide(layout) img = Image.open(file[i]) if img.width / img.height > 16 / 9: pic = slide.shapes.add_picture(file[i], 0, 0, width = max_width) else: pic = slide.shapes.add_picture(file[i], 0, 0, height = max_height) prs.save("a.pptx") PPTX_PATH = r"C:\Program Files\Microsoft Office\root\Office16\POWERPNT.EXE" subprocess.Popen([PPTX_PATH, r"a.pptx"])
あらかじめtemplate.pptxを作成し、このファイルと同じフォルダに入れておく必要があります
template.pptxは、新しいプレゼンテーションをそのまま名前を付けて保存すればよいです。
開発環境
Windows10 64bit
python 3.7.9
python-pptx 0.6.18
pyinstaller 4.0
説明
ファイル選択画面は、
Python:処理ファイルをGUIから選択する方法 - Qiita
こちらのサイトを参考に、jpgとpngを選択できるようにしました。
写真のサイズは、縦長か横長か判定して、スライド(16:9)にフィットするようにしました。 中央寄せではなく、左寄せにしています。
仕上げに、pyinstallerでexe化すると便利です。