LoginSignup
91
89

More than 5 years have passed since last update.

python-pptxまとめ

Last updated at Posted at 2016-05-25

■ python-pptxとは

pptx(プレゼンテーション形式ファイル)を作成できるpythonライブラリ。
以下、公式のAPI Documentationから抜粋。

# -*- 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 スライドの への参照。

■ 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が推奨されている。

91
89
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
91
89