Python-pptx
python-pptx is a Python library for creating and updating PowerPoint (.pptx) files.
Installation
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
- python
- python-pptx (PowerPoint)
- OpenPyXL (Excel)
- MS Office