python-pptxの公式ドキュメント「Slide layout basics」には、9つのレイアウト名だけが列挙されていて、ちょっと気になったのでスクリプトを作って確認しました。
全レイアウト名を取得するスクリプト
以下のスクリプトを実行すると、全レイアウト名が出力されます。
for layout in prs.slide_layouts:
print(layout.name)
結果、公式ドキュメントに記載されている、
Title Slide
Title and Content
Section Header
Two Content
Comparison
Title Only
Blank
Content with Caption
Picture with Caption
の他に、
Title and Vertical Text
Vertical Title and Text
も存在することが確認できました。
実行環境(言語設定)によって、デフォルトテンプレートが持つレイアウトが微妙に異なるのだろうと、想像しています。
全レイアウト名を取得するスクリプトで行っている処理
SlideLayoutsオブジェクトを、Presentation.slide_layoutsで取得して、
for layout in prs.slide_layouts:
SlideLayoutの名前を出力しています。
print(layout.name)
全レイアウトのスライドを作成する
以下のようなスクリプトにすれば、全レイアウトのスライド11枚を含むプレゼンテーションを作成できます。
prs = pptx.Presentation()
for layout in prs.slide_layouts:
sld = prs.slides.add_slide(layout)
if sld.placeholders:
sld.placeholders[0].text = layout.name
先のスクリプトではprintしているだけでしたが、Slides.add_slide()メソッドでスライドを挿入して、
sld = prs.slides.add_slide(layout)
プレースホルダーが存在するスライドの場合に、
if sld.placeholders:
1つ目のプレースホルダーにレイアウト名を出力しています。
sld.placeholders[0].text = layout.name
最終更新日時:2020-02-20 17:15
Home » Python » python-pptxの使い方 » python-pptxで全レイアウト名を取得する