.venv\Scripts\activate
pip install python-pptx
2-1. python.exe -m pip install --upgrade pipfrom pptx import Presentation # 라이브러리
from pptx.util import Inches # 사진, 표 등을 그리기 위해
prs = Presentation() # 파워포인트 객체 선언
for i in range(0, 11):
title_slide_layout = prs.slide_layouts[i] # 슬라이드 종류 선택
slide = prs.slides.add_slide(title_slide_layout) # 슬라이드 추가
prs.save('add all slides.pptx')
python app.py

from pptx import Presentation # 라이브러리
from pptx.util import Inches # 사진, 표 등을 그리기 위해
prs = Presentation() # 파워포인트 객체 선언
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] # 제목 상자는 placeholders[0], 부제목 상자는 [1]
subtitle.text = "파이썬으로 생성한 PPT!"
# 저장
prs.save('파이썬.pptx')
결과 : 파이썬.ppt 파일이 생성되었으며 타이틀이 작성되었다

01~02행: prs.slide_layouts[0]에서 0은 제목 슬라이드를 의미하며, 해당 레이아웃을 추가한다.
05~06행: 제목 슬라이드의 레이아웃(0)의 경우는 [그림 4-2]에서 알 수 있듯이, 두 가지 placeholder가 있다. 첫 번째는 제목을 의미하며, 두 번째는 부제목을 의미한다. slide.placeholders[0]에서 0은 제목을 의미하며,제목의 값을 “Hello, World!”로 설정한다.
09~10행: 두 번째 placeholder는 부제목을 의미하며, 부제목에 “python-pptx was here!” 값을 설정한다.
13행: 파일을 저장한다.
bullet_slide_layout = prs.slide_layouts[1] # 1 : 제목 및 내용 슬라이드
slide = prs.slides.add_slide(bullet_slide_layout) # 기존에 있던 슬라이드에 추가
# 제목
title_shape = slide.placeholders[0]
title_shape.text = '목차기호 추가한 문'
# 내용
body_shape = slide.placeholders[1]
tf = body_shape.text_frame
tf.text = '목차있는 문단목록'
# 단락 추가
p = tf.add_paragraph()
p.text = '첫번째 목차를 적용한 문단'
p.level = 1 # 1 : 들여쓰기 레벨
# 단락 추가
p = tf.add_paragraph()
p.text = '두번째 목차를 적용한 문단'
p.level = 2 # 2 : 들여쓰기 레벨
# 저장
prs.save('파이썬.pptx')
from pptx import Presentation # 라이브러리
from pptx.util import Inches # 사진, 표 등을 그리기 위해
prs = Presentation() # 파워포인트 객체 선언
img_path = './1.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)
# width, hegith가 없을 경우 원본 사이즈로
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)
prs.save('이미지.pptx')
None: + 01행: 슬라이드에 삽입하고 싶은 이미지 파일을 설정한다.
- 03~04행: prs.slide_layouts[6]에서 6은 빈 슬라이드를 의미한다.
- 06~09행: add_picture() 함수를 호출하여 이미지를 추가한다. 이미지의 경우 위치와 크기 설정이 필요하다. top과 left는 시작 위치를 width와 height는 이미지의 크기를 의미한다.
- 11~14행: add_picture() 함수를 호출하여 이미지를 추가하는데, 기존보다 크게 추가한다.

title_only_slide_layout = prs.slide_layouts[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)
# write column headings
table.cell(0, 0).text = '제목1'
table.cell(0, 1).text = '제목2'
# write body cells
table.cell(1, 0).text = '내용1'
table.cell(1, 1).text = '내용2'
prs.save('이미지.pptx')

Note: + 01~02행: prs.slide_layouts[5]에서 5는 ‘제목만’ 슬라이드를 의미한다.
- 05~06행: 제목을 의미하는 placeholder에 ‘Adding a Table’을 설정한다.
- 08~13행: add_table() 함수를 호출하여 표를 추가한다. 표는 몇 행, 몇 열로 만들 것인지와 위치, 크기를 설정 한다. rows와 cols를 2로 설정하여 2행 2열의 표를 만든다.
- 16~17행: 칼럼 크기를 설정한다.
- 20~25행: 표의 각 cell에 값을 설정한다. table.cell(행, 열)이다.