Python-pptxで動的なスライドショーを自動生成|PPTから動画化までのプロセス
Python-pptxを使って動的なスライドショーを作成する
Python-pptxはPythonでPPTファイルを生成し、編集するためのライブラリです。
プレゼンテーションの資料を自動生成でき、業務効率化に役立ちます。
Python-pptxのインストール
Python-pptxを使うためには、まずインストールをする必要があります。
pip install python-pptx
このコマンドを実行することで、Python環境にライブラリが追加されます。
サンプルPPTファイルを生成する
次に、Pythonコードを使って簡単なPPTファイルを生成してみましょう。
from pptx import Presentation
# 新しいプレゼンテーションを作成
presentation = Presentation()
# タイトルスライドを追加
slide_layout = presentation.slide_layouts[0]
slide = presentation.slides.add_slide(slide_layout)
# タイトルとサブタイトルを設定
title = slide.shapes.title
subtitle = slide.placeholders[1]
title.text = "Python-pptxによるスライド生成"
subtitle.text = "自動生成されたスライドで業務を効率化しましょう"
# プレゼンテーションを保存
presentation.save('generated_presentation.pptx')
このコードは、新しいPPTファイルを作成し、タイトルスライドを追加してタイトルとサブタイトルを設定します。
PythonからPPTを動画化するプロセス
生成したPPTファイルを動画化するには、ffmpegを使います。
まずはffmpegをインストールしましょう。
ffmpegのインストール
MacやLinuxユーザーならHomebrewを使うとインストールが簡単です。
brew install ffmpeg
PythonでPPTを画像に変換する
PPTを動画化する前に、各スライドを画像ファイルに変換します。
次のようにPythonスクリプトを使います。
import comtypes.client
from pathlib import Path
def ppt_to_images(ppt_file):
powerpoint = comtypes.client.CreateObject("Powerpoint.Application")
powerpoint.Visible = 1
output_dir = Path("slides_images/")
output_dir.mkdir(exist_ok=True)
presentation = powerpoint.Presentations.Open(ppt_file, WithWindow=False)
for i in range(1, presentation.Slides.Count + 1):
slide = presentation.Slides(i)
slide.Export(str(output_dir / f"slide_{i}.jpg"), "JPG")
presentation.Close()
powerpoint.Quit()
このスクリプトは、PPTファイルの各スライドをJPEG形式の画像ファイルに変換します。
[h3>PPTを動画にする
すべてのスライドを動画にするには、先ほどのJPEG画像を使います。
スライド画像を結合した動画の生成
次に、スライド画像を使って動画を生成するPythonスクリプトです。
import subprocess
input_pattern = "slides_images/slide_%d.jpg"
output_video = "presentation_video.mp4"
command = [
"ffmpeg",
"-framerate", "1",
"-i", input_pattern,
"-r", "30",
"-pix_fmt", "yuv420p",
output_video
]
subprocess.run(command)
このffmpegのコマンドは、画像を順番に結合し、動画を生成します。動画は各スライドを1秒間表示するようになっています。
まとめ
Python-pptxを使ってスライドを自動生成し、ffmpegで動画化するプロセスを紹介しました。
- Python-pptxでPPTファイルを自動生成できる
- 毎回の手動入力を減らせる
- ffmpegでスライドを動画化しやすくなる
- プレゼン動画を自動生成して効率化できる
これらを駆使して、プレゼン資料作成を効率化し、業務をスムーズに進めましょう。