Python で PowerPoint を操作するライブラリ python-pptx は本当に便利で,前に「発表者ノート」を抽出するサンプルコードを紹介したけど,引き続き今も使っている.PowerPoint ファイルの文章レビューを自動化したり,業務で使うスクリプトも増えてきた.作業効率アップにも大きく貢献している.
「非表示スライド」を除外する
最近 python-pptx で「非表示スライド」を処理対象から除外する必要があり,ドキュメントを読んだけど,Slide
オブジェクトには is_hidden
のようなプロパティはなさそうだった.しかし python-pptx の仕組みを調べていたら,Slide
オブジェクトの内部的な Schema
構造に show
という属性を発見した.
<xsd:complexType name="CT_Slide"> <xsd:attribute name="show" type="xsd:boolean" default="true"/> </xsd:complexType>
そこで Slide
オブジェクトに対して _element.get('show')
を実装すれば「非表示スライド」を判定できるようになる.動作確認をしたところ,返り値は None
(通常)と '0'
(非表示)だった.サンプルコード title.py
を載せておく.
from pptx import Presentation presentation = Presentation('example.pptx') for slide in presentation.slides: if slide._element.get('show') is None: print(slide.shapes.title.text)
動作確認をする
動作確認のために以下のようなスライド example.pptx
を作った.2ページ目を「非表示スライド」にしてある.
サンプルコード title.py
を実行すると,2ページ目を除外できた.
$ python title.py slide title 1 slide title 3
まとめ
python-pptx で「非表示スライド」を判定する Tips は知っておくと便利!引き続き python-pptx を使っていくぞー!