Skip to content

Python-pptx

python-pptx is a Python library for creating and updating PowerPoint (.pptx) files.

Installation

pip install python-pptx

slide_layouts

레이아웃/오피스 테마 목록을 선택할 수 있다.

slide_layouts[6]
레이아웃명 : 빈 화면 (Blank)
placeholders 속성 : 없음

Examples

Hello World

from pptx import Presentation

prs = Presentation()
title_slide_layout = prs.slide_layouts[0]
slide = prs.slides.add_slide(title_slide_layout)
title = slide.shapes.title
subtitle = slide.placeholders[1]

title.text = "Hello, World!"
subtitle.text = "python-pptx was here!"

prs.save('test.pptx')

Picture

from pptx import Presentation
from pptx.util import Inches

img_path = 'monty-truth.png'

prs = Presentation()
blank_slide_layout = prs.slide_layouts[6]
slide = prs.slides.add_slide(blank_slide_layout)

left = top = Inches(1)
pic = slide.shapes.add_picture(img_path, left, top)

left = Inches(5)
height = Inches(5.5)
pic = slide.shapes.add_picture(img_path, left, top, height=height)

prs.save('test.pptx')

ddrm 에서 사용한 샘플

import os
from pptx import Presentation
from pptx.util import Inches, Pt

prs = Presentation()
# title_slide_layout = prs.slide_layouts[0]
blank_layout = prs.slide_layouts[6]

dirnames = list(os.listdir("."))
dirnames.sort()

for dirname in dirnames:
    if not os.path.isdir(dirname):
        continue

    img0 = os.path.join(dirname, "layer0-next.png")
    img1 = os.path.join(dirname, "layer1-next.png")
    img2 = os.path.join(dirname, "layer2-next.png")
    img3 = os.path.join(dirname, "layer3-next.png")

    slide = prs.slides.add_slide(blank_layout)
    x = 0
    y = 0
    w = 4
    h = 3

    picture0 = slide.shapes.add_picture(img0, Inches(x + 0), Inches(y), Inches(w), Inches(h))
    picture1 = slide.shapes.add_picture(img1, Inches(x + w), Inches(y), Inches(w), Inches(h))

    x = 0
    y = h
    picture2 = slide.shapes.add_picture(img2, Inches(x + 0), Inches(y), Inches(w), Inches(h))
    picture3 = slide.shapes.add_picture(img3, Inches(x + w), Inches(y), Inches(w), Inches(h))

    x = 0
    y = h * 2
    text_w = 3
    text_h = 0.5
    text_box = slide.shapes.add_textbox(Inches(x), Inches(y), Inches(text_w), Inches(text_h))
    text_box.text_frame.text = "Directory Name:"
    p = text_box.text_frame.add_paragraph()
    p.text = dirname
    p.font.bold = True
    p.font.size = Pt(12)

    y += text_h + 0.1
    text_box = slide.shapes.add_textbox(Inches(x + 0), Inches(y), Inches(1), Inches(text_h))
    text_box.text_frame.text = "Normal"
    text_box = slide.shapes.add_textbox(Inches(x + 1), Inches(y), Inches(1), Inches(text_h))
    text_box.text_frame.text = "TurnUp"
    text_box = slide.shapes.add_textbox(Inches(x + 2), Inches(y), Inches(1), Inches(text_h))
    text_box.text_frame.text = "TurnDown"


prs.save("result.pptx")

See also

Favorite site