03 PPT작성
1. 파이썬 가상환경 실행 & 활성화
1.venv\Scripts\activate2. 라이브러리 설치
- 터미널에 아래의 명령어를 입력한다.
1pip install python-pptx- 설치중 아래와 같은 메시지가 뜨면 파이썬을 업데이트 하고 재설치 한다
2-1. python.exe -m pip install --upgrade pip
3. 오피스 테마 레이아웃 적용하기
- app.py
- Terminal
1from pptx import Presentation # 라이브러리2from pptx.util import Inches # 사진, 표 등을 그리기 위해3
4prs = Presentation() # 파워포인트 객체 선언5
6for i in range(0, 11):7 title_slide_layout = prs.slide_layouts[i] # 슬라이드 종류 선택8 slide = prs.slides.add_slide(title_slide_layout) # 슬라이드 추가9prs.save('add all slides.pptx')1python app.py- 위의 코드를 실행하면 아래 이미지와 같이 ppt파일이 생성된다.

4. 응용하기
4.1. 객체선언
- 라이브러리를 import하고, 객체를 선언
1from pptx import Presentation # 라이브러리2from pptx.util import Inches # 사진, 표 등을 그리기 위해3prs = Presentation() # 파워포인트 객체 선언4.2. 제목 슬라이드
- 제목 슬라이드 추가
1title_slide_layout = prs.slide_layouts[0] # 0 : 제목 슬라이드에 해당2slide = prs.slides.add_slide(title_slide_layout) # 슬라이드 추가3# 제목 - 제목에 값넣기4title = slide.placeholders[0] # 제목5title.text = "안녕하세요!" # 제목에 값 넣기6# 부제목7subtitle = slide.placeholders[1] # 제목 상자는 placeholders[0], 부제목 상자는 [1]8subtitle.text = "파이썬으로 생성한 PPT!"9# 저장10prs.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행: 파일을 저장한다.
4.3. 제목 및 내용 슬라이드
- 열려있는 ppt문서는 닫는다
1bullet_slide_layout = prs.slide_layouts[1] # 1 : 제목 및 내용 슬라이드2slide = prs.slides.add_slide(bullet_slide_layout) # 기존에 있던 슬라이드에 추가3
4# 제목5title_shape = slide.placeholders[0]6title_shape.text = '목차기호 추가한 문'7
8# 내용9body_shape = slide.placeholders[1]10tf = body_shape.text_frame11tf.text = '목차있는 문단목록'12# 단락 추가13p = tf.add_paragraph()14p.text = '첫번째 목차를 적용한 문단'15p.level = 1 # 1 : 들여쓰기 레벨16# 단락 추가17p = tf.add_paragraph()18p.text = '두번째 목차를 적용한 문단'19p.level = 2 # 2 : 들여쓰기 레벨20# 저장21prs.save('파이썬.pptx')- 01~02행: prs.slide_layouts[1]에서 1은 제목 및 내용 슬라이드를 의미하며, 해당 레이아웃을 추가한다.
- 05~06행: 제목과 내용 슬라이드의 레이아웃(1)의 경우는 [그림 4-2]에서 알 수 있듯이, 두 가지 placeholder가 있다. 첫 번째는 제목을 의미하며, 두 번째는 내용을 의미한다. slide.placeholders[0]에서 0은 제목을 의미하며, 제목의 값을 ‘Adding a Bullet Slide’로 설정한다.
- 09~11행: 두번째 placeholder는 내용을 의미하며, ‘Find the bullet slide layout’ 값을 설정한다.
- 14~16행: add_paragraph 함수를 호출하여 단락을 추가한다. p.level로 들여쓰기 레벨을 설정할 수 있다.
- 19~21행: add_paragraph 함수를 호출하여 단락을 또 추가한다. 그리고 들여쓰기 레벨을 2로 설정한다.
4.4. 사진 슬라이드
이미지다운로드- 이미지를 내려받아 프로젝트 폴더에 저장한다.
- 새 문서로 작업할때는 라이브러리를 임포트 해야한다.
1from pptx import Presentation # 라이브러리2from pptx.util import Inches # 사진, 표 등을 그리기 위해3prs = Presentation() # 파워포인트 객체 선언- 아래 코드를 작성후 실행한다.
1img_path = './1.jpg'2blank_slide_layout = prs.slide_layouts[6] # 6 : 제목/내용이 없는 '빈' 슬라이드3slide = prs.slides.add_slide(blank_slide_layout)4left = top = Inches(1)5width = height = Inches(1)6# width, hegith가 없을 경우 원본 사이즈로7pic = slide.shapes.add_picture(img_path, left, top, width=width,height=height)8left = Inches(3)9width = Inches(5.5)10height = Inches(4)11pic = slide.shapes.add_picture(img_path, left, top, width=width,height=height)12prs.save('이미지.pptx')- 01행: 슬라이드에 삽입하고 싶은 이미지 파일을 설정한다.
- 03~04행: prs.slide_layouts[6]에서 6은 빈 슬라이드를 의미한다.
- 06~09행: add_picture() 함수를 호출하여 이미지를 추가한다. 이미지의 경우 위치와 크기 설정이 필요하다. top과 left는 시작 위치를 width와 height는 이미지의 크기를 의미한다.
- 11~14행: add_picture() 함수를 호출하여 이미지를 추가하는데, 기존보다 크게 추가한다.
- 완성화면

4.5. 표 슬라이드
- 기존의 코드에 이어서 작성한다.
1title_only_slide_layout = prs.slide_layouts[5]2slide = prs.slides.add_slide(title_only_slide_layout)3shapes = slide.shapes4title_shape = slide.placeholders[0]5title_shape.text = '테이블생성'6rows = cols = 27left = top = Inches(2.0)8width = Inches(6.0)9height = Inches(0.8)10table = shapes.add_table(rows, cols, left, top, width, height).table11# set column widths12table.columns[0].width = Inches(2.0)13table.columns[1].width = Inches(4.0)14# write column headings15table.cell(0, 0).text = '제목1'16table.cell(0, 1).text = '제목2'17# write body cells18table.cell(1, 0).text = '내용1'19table.cell(1, 1).text = '내용2'20prs.save('이미지.pptx')
참고
- 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(행, 열)이다.