python-pptxまとめ

# ■ python-pptxとは
pptx(プレゼンテーション形式ファイル)を作成できるpythonライブラリ。
以下、[公式](https://python-pptx.readthedocs.io/en/latest/)のAPI Documentationから抜粋。

```py
# -*- coding: utf-8 -*-

from pptx import Presentation

SLD_LAYOUT_TITLE_AND_CONTENT = 0

# Presentaitonインスタンスの作成
# デフォルトではC:\Python27\Lib\site-packages\pptx\templates\default.pptxを読み取る
prs = Presentation()

# レイアウトの決定
slide_layout = prs.slide_layouts[SLD_LAYOUT_TITLE_AND_CONTENT]

# スライド作成(Slide)
slide = prs.slides.add_slide(slide_layout)
## テキストの設定(placeholders)
slide.shapes.title.text = "placeholders[0]"
slide.placeholders[1].text = "placeholders[1]"
print type(slide)
print "len(slide.placeholders) : " + str(len(slide.placeholders))
print slide.placeholders[0].text
print slide.placeholders[1].text
print

print type(slide.shapes.placeholders[1].text_frame)
print slide.shapes.placeholders[0].text_frame.text
print slide.shapes.placeholders[1].text_frame.text

### プレースホルダ内にテキストを追加(TextFrame)
text_frame = slide.shapes.placeholders[1].text_frame
paragraph = text_frame.add_paragraph()
paragraph.text = "add_paragraph text"
#### 段落のレベル
paragraph.level = 1

paragraph = slide.shapes.placeholders[1].text_frame.add_paragraph()
paragraph.text = "add_paragraph text2"
paragraph.level = 8

text_frame.fit_text(font_family='Calibri', max_size=33, bold=True, italic=True, font_file=None)

### プレースホルダを削除
#text_frame.clear()

# スライド追加
slide = prs.slides.add_slide(slide_layout)
## テキストの設定
slide.shapes.title.text = "placeholders[0]"
slide.placeholders[1].text = "placeholders[1]"

# スライドの保存
prs.save('python.pptx')
```
# ■ Presentation オブジェクト
* core_properties
  著者、コメントなどのプレゼンテーションファイルのプロパティ情報を持つオブジェクト

* slide_layouts
    最初のSlideMasterに属するSlideLayoutのインスタンス。

* slidelayouts
  非推奨。 .slide_layoutsが公式推奨。

* slide_master
  最初のSlideMasterのオブジェクト。 

* slidemaster
  非推奨。 .slide_masterが公式推奨。

* slide_masters
  SlideMasterのリスト型のオブジェクト。

* slidemasters
  非推奨。 .slide_mastersが公式推奨。

* slide_height
  スライドの高さ。単位はEnglish Metric Units (EMU)

* slide_width
  スライドの幅。単位はEnglish Metric Units (EMU)

* slides
  プレゼンテーションファイル内のスライドからなる_Slidesのオブジェクト

* save(file)
  プレゼンテーションファイルの保存をするメソッド。
  引数は、ファイルパス(string型)かfile オブジェクトを使用する。


# ■ CoreProperties オブジェクト
著者、コメントなどのプレゼンテーションファイルのプロパティ情報をメンバに持つ。

* author
string型。著者名。

* category
string型。 レジュメ、提案書、手紙などの文書の分類。

* comments
string型。文書に設定する吹き出し。

* content_status
string型。文書の完了状況。例 (draft ※下書き)。

* created
datetime型。 文書の初期作成時間。

* identifier
string型。 何らかの識別子? 例 (ISBN)

* keywords
string型。ドキュメントの検索条件に使用するキーワード。

* language
string型。文書内使用言語。

* last_modified_by
string型。文書を最後に編集した人の名前やメールアドレスなど。

*  last_printed
datetime型。文書が最後に印刷された時間。

* modified
datetime型。文書を最後に編集した時間。

* revision
int型。文書が保存されるたびに加算される文書の改正バージョン。
python-pptxを使用した場合、自動的には加算されない。

* subject
string型。 プレゼンテーション内容のテーマ。

* title
string型。 プレゼンテーションの題名。

* version
string型。 フォーマットフリーのバージョン文字列。

# ■ _Slides(sldIdLst, prs)オブジェクト
class pptx.parts.presentation._Slides(sldIdLst, prs)
プレゼンテーションファイル内のスライドのリスト。

* add_slide(slidelayout)
スライドを追加するメソッド。
レイアウトは引数で指定したレイアウトに従う。

# ■ Slideオブジェクト
class pptx.parts.slide.Slide(partname, content_type, element, package=None)

* add_chart_part(chart_type, chart_data)[source]
スライドにchartを追加するメソッド。

* get_image(rId)
引数で指定したIDの画像を取得する。 

* get_or_add_image_part(image_file)
画像オブジェクトとそれに対応するIDを返す。

* name
スライドの内部名。

* partname
部分名。(例 :/ppt/slides/slide1.xml)

* placeholders
_SlidePlaceholders クラスのインスタンス。
スライド内のプレースホルダを示す。
http://allabout.co.jp/gm/gc/298109/

* shapes
SlideShapeTree のインスタンス。
スライド内の図形を表す。

* slide_layout
スライドのレイアウト。

* slidelayout
非推奨。

.slide_layoutが推奨されている。

* spTree
スライドの <p:spTree>への参照。

# ■ SlideLayout objects

class pptx.parts.slidelayout.SlideLayout(partname, content_type, element, package=None)

* placeholders
スライドレイアウト内のプレースホルダ。

* shapes
スライドレイアウト中の図形。

* slide_master
スライドマスター。

* slidemaster
非推奨。 .slide_masterが推奨されている。

# ■ SlideMaster objects

class pptx.parts.slidemaster.SlideMaster(partname, content_type, element, package=None)

* placeholders
スライドレイアウト内のプレースホルダ。

* shapes
スライドレイアウト中の図形。

* slide_layouts
スライドレイアウト

* slidelayouts
非推奨。slide_layoutsが推奨されている。