Home » Python » python-pptxの使い方 » python-pptxで全レイアウト名を取得する

python-pptxで全レイアウト名を取得する

動作検証バージョン:64bit Windows 10 Pro + Python 3.8.0 + python-pptx 0.6.18

python-pptxの公式ドキュメント「Slide layout basics」には、9つのレイアウト名だけが列挙されていて、ちょっと気になったのでスクリプトを作って確認しました。

[スポンサードリンク]

全レイアウト名を取得するスクリプト

以下のスクリプトを実行すると、全レイアウト名が出力されます。

import pptx

prs = pptx.Presentation()
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枚を含むプレゼンテーションを作成できます。

import pptx

prs = pptx.Presentation()

for layout in prs.slide_layouts:
    sld = prs.slides.add_slide(layout)
    if sld.placeholders:
        sld.placeholders[0].text = layout.name

prs.save(r'C:\temp\slide_layouts.pptx')

先のスクリプトでは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で全レイアウト名を取得する

TrackBack:0

TrackBack URL

Home » Python » python-pptxの使い方 » python-pptxで全レイアウト名を取得する

Copyright © インストラクターのネタ帳 All Rights Reserved.

.