from pptx import Presentation # 라이브러리
from pptx.util import Inches # 사진, 표 그리기
prs = Presentation() # 파워포인트 객체 선언
# 1. 제목 슬라이드 추가
title_slide_layout = prs.slide_layouts[0] # 0 제목 슬라이드 사용
slide = prs.slides.add_slide(title_slide_layout) # 슬라이드 추가
# 제목
title = slide.placeholders[0] # 제목
title.text = "보고서 작성" # 제목에 값 넣기
# 부제목
subtitle = slide.placeholders[1] # 부제목
subtitle.text = "인하공전 김기태"
# 2. 내용 슬라이드 추가
bullet_slide_layout = prs.slide_layouts[1] # 1 : 제목 및 내용 슬라이드
slide = prs.slides.add_slide(bullet_slide_layout) # 기존 슬라이드에 추가
# 제목
title_shape = slide.placeholders[0]
title_shape.text = 'Adding a Bullet Slide'
# 내용
body_shape = slide.placeholders[1]
tf = body_shape.text_frame
tf.text = 'Find the bullet slide layout'
# 단락 추가
p = tf.add_paragraph()
p.text = 'Use _TextFrame.text for first bullet'
p.level = 1 # 1 : 들여쓰기 레벨
# 단락 추가
p = tf.add_paragraph()
p.text = 'Use _TextFrame.text for first bullet'
p.level = 2 # 2 : 들여쓰기 레벨
# 단락 추가
p = tf.add_paragraph()
p.text = '내용 추가 테스트'
p.level = 0 # 0 : 들여쓰기 레벨
# 단락 추가
p = tf.add_paragraph()
p.text = '필요에 따라 추가하면 됨'
p.level = 1 # 1 : 들여쓰기 레벨
# 3. 사진 슬라이드 추가
img_path = 'res/slide_test.jpg'
blank_slide_layout = prs.slide_layouts[6] # 6 : 제목/내용이 없는 '빈' 슬라이드
slide = prs.slides.add_slide(blank_slide_layout)
left = top = Inches(1)
width = height = Inches(1)
pic = slide.shapes.add_picture(img_path, left, top, width=width, height=height)
left = Inches(3)
width = Inches(5.5)
height = Inches(4)
pic = slide.shapes.add_picture(img_path, left, top, width=width,height=height)
# 4. 표 슬라이드 추가
title_only_slide_layout = prs.slide_layouts[5] # 5 : 제목만 있는 슬라이드
slide = prs.slides.add_slide(title_only_slide_layout)
shapes = slide.shapes
title_shape = slide.placeholders[0]
title_shape.text = "테이블 추가"
rows = cols = 2
left = top = Inches(2.0)
width = Inches(6.0)
height = Inches(0.8)
table = shapes.add_table(rows, cols, left, top, width, height).table
# set column widths
table.columns[0].width = Inches(2.0)
table.columns[1].width = Inches(4.0)
# 컬럼 헤더 설정
table.cell(0, 0).text = 'Foo'
table.cell(0, 1).text = 'Bar'
# 셀 내용 입력
table.cell(1, 0).text = 'Baz'
table.cell(1, 1).text = 'Qux'
# 저장
prs.save("report.pptx")