Type something to search...

03 PPT작성

1. 파이썬 가상환경 실행 & 활성화

.venv\Scripts\activate

2. 라이브러리 설치

  1. 터미널에 아래의 명령어를 입력한다.
pip install python-pptx
  1. 설치중 아래와 같은 메시지가 뜨면 파이썬을 업데이트 하고 재설치 한다 alt text 2-1. python.exe -m pip install --upgrade pip

3. 오피스 테마 레이아웃 적용하기

from 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')

4. 응용하기

4.1. 객체선언

  • 라이브러리를 import하고, 객체를 선언
from pptx import Presentation # 라이브러리
from pptx.util import Inches # 사진, 표 등을 그리기 위해
prs = Presentation() # 파워포인트 객체 선언

4.2. 제목 슬라이드

  • 제목 슬라이드 추가
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 파일이 생성되었으며 타이틀이 작성되었다 alt text

  • 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문서는 닫는다

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')
  • 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. 사진 슬라이드

이미지다운로드
  1. 이미지를 내려받아 프로젝트 폴더에 저장한다.
  2. 새 문서로 작업할때는 라이브러리를 임포트 해야한다.
from pptx import Presentation # 라이브러리
from pptx.util import Inches # 사진, 표 등을 그리기 위해
prs = Presentation() # 파워포인트 객체 선언
  1. 아래 코드를 작성후 실행한다.
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')

  • 01행: 슬라이드에 삽입하고 싶은 이미지 파일을 설정한다.
  • 03~04행: prs.slide_layouts[6]에서 6은 빈 슬라이드를 의미한다.
  • 06~09행: add_picture() 함수를 호출하여 이미지를 추가한다. 이미지의 경우 위치와 크기 설정이 필요하다. top과 left는 시작 위치를 width와 height는 이미지의 크기를 의미한다.
  • 11~14행: add_picture() 함수를 호출하여 이미지를 추가하는데, 기존보다 크게 추가한다.

  1. 완성화면 alt

4.5. 표 슬라이드

  1. 기존의 코드에 이어서 작성한다.
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')

alt

참고

  • 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(행, 열)이다.