[python-pptx 완전 해설] PowerPoint 프레젠테이션 자료를 자동화하는 방법

1. python-pptx란?

python-pptx는 Python 프로그램에서 직접 PowerPoint 프레젠테이션을 만들고, 편집하고, 저장하기 위한 라이브러리입니다. 이를 통해 기존의 수동 작업을 줄이고, 데이터를 기반으로 한 동적인 프레젠테이션 자료의 자동 생성 및 반복되는 작업의 효율화를 가능하게 합니다.

1.1 python-pptx의 주요 용도

  • 자동 프레젠테이션 자료 생성: 회의나 보고서를 위해 데이터를 기반으로 한 슬라이드를 자동으로 생성할 수 있습니다.
  • 효율적인 편집 작업: 기존 PowerPoint 파일에 슬라이드와 텍스트를 추가하여 짧은 시간에 프레젠테이션 내용을 업데이트할 수 있습니다.

1.2 Python에서 PowerPoint를 조작하는 장점

기존 PowerPoint의 수동 작업에 비해 python-pptx를 사용하면 프로그램에 의한 자동화가 가능합니다. 이를 통해 대량의 슬라이드를 한 번에 생성하거나 정기적인 보고서 작성을 효율화할 수 있어 작업 시간을 크게 단축할 수 있습니다.

2. python-pptx 설정

2.1 설치 절차

python-pptx 설치는 매우 간단합니다. 아래 명령을 실행하기만 하면 준비가 완료됩니다。
pip install python-pptx</> 또한, Python 환경이 갖춰져 있지 않은 경우 conda를 사용하여 환경을 설정하고 라이브러리를 설치할 있습니다。

2.2 python-pptx 기본 구조

브러리를 임포트하고 Presentation() 클래스를 사용하여 새로운 프레젠테이션을 생성합니다. 이것이 PowerPoint 조작의 기본이 됩니다。
from pptx import Presentation

prs = Presentation()
이 코드를 통해 새로운 프레젠테이션이 생성되고, 다음으로 슬라이드와 텍스트를 추가할 준비가 됩니다。
RUNTEQ(ランテック)|超実戦型エンジニア育成スクール

3. 프레젠테이션 만들기 및 저장

3.1 새로운 프레젠테이션 만들기

먼저, python-pptx를 사용하여 프레젠테이션을 만들고 저장하는 절차를 설명합니다. 아래 코드는 새 프레젠테이션 파일을 만들고 저장하는 방법입니다.
from pptx import Presentation

prs = Presentation()
prs.save('new_presentation.pptx')
이렇게 하면 지정한 이름으로 PowerPoint 파일이 현재 디렉터리에 저장됩니다.

3.2 슬라이드 추가 방법

프레젠테이션에 슬라이드를 추가하려면 add_slide() 메서드를 사용합니다. 슬라이드 레이아웃은 11가지 템플릿 중에서 선택할 수 있습니다.
slide_layout = prs.slide_layouts[0]  # 제목 슬라이드 선택
slide = prs.slides.add_slide(slide_layout)
이 코드를 사용하면 지정한 레이아웃에 따라 새로운 슬라이드가 추가됩니다.

4. 슬라이드 콘텐츠 조작

4.1 텍스트 삽입 및 서식 설정

슬라이드에 텍스트를 삽입할 때는 플레이스홀더(제목 및 부제목 위치)를 사용합니다. 다음으로, TextFrame 객체를 사용하여 서식을 설정합니다. 텍스트 삽입 및 서식 설정은 다음과 같이 수행합니다.
title = slide.shapes.title
subtitle = slide.placeholders[1]

title.text = "프레젠테이션 제목"
subtitle.text = "부제목"
또한, 서식으로 글꼴 크기와 색상을 변경하거나 줄바꿈을 추가하는 것도 가능합니다.
title.text = "Python으로
자동 생성된 슬라이드"

4.2 이미지 및 도형 추가

이미지를 슬라이드에 삽입할 경우, add_picture() 메서드를 사용합니다. 위치와 크기도 지정할 수 있습니다.
from pptx.util import Inches

img_path = 'image.png'
left = Inches(1)
top = Inches(2)
slide.shapes.add_picture(img_path, left, top)
또한, PowerPoint 도형 메뉴에 있는 형태를 프로그램으로 추가하고 디자인을 커스터마이즈할 수 있습니다.
from pptx.enum.shapes import MSO_SHAPE
shape = slide.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE, Inches(1), Inches(1), Inches(2), Inches(1))
shape.text = "도형에 텍스트"
年収訴求

5. 고급 자동화 기술

5.1 슬라이드 자동 생성

루프를 사용하여 대량의 슬라이드를 자동으로 생성할 수 있습니다. 예를 들어, 데이터를 기반으로 프레젠테이션을 만들 경우, 아래와 같은 코드가 유용합니다.
for i in range(10):
    slide_layout = prs.slide_layouts[1]
    slide = prs.slides.add_slide(slide_layout)
    title = slide.shapes.title
    title.text = f"슬라이드 {i+1}"
이 코드에서는 10장의 슬라이드가 자동으로 생성되고, 각각에 연번이 붙습니다.

5 프레젠테이션 편집

기존 PowerPoint 파일을 읽어 내용을 편집하는 것도 가능합니다. 예를 들어, 제목을 업데이트하려면 아래 코드를 사용합니다.
prs = Presentation('existing_presentation.pptx')
slide = prs.slides[0]
title = slide.shapes.title
title.text = "업데이트된 제목"
prs.save('updated_presentation.pptx')

6. 프레젠테이션의 외관을 개선하기

6.1 템플릿 적용

python-pptx를 사용하면 디자인 템플릿을 적용하여 보기 좋은 프레젠테이션을 쉽게 만들 수 있습니다. 디자인 템플릿을 사용함으로써 짧은 시간에 전문적인 외관을 얻을 수 있습니다.

6.2 애니메이션 및 슬라이드 전환 설정

또한, 고급 프레젠테이션에서는 애니메이션 및 슬라이드 전환을 설정할 수도 있습니다. 이를 통해 시각적인 임팩트를 강화할 수 있습니다.

7. 정리

python-pptx는 프레젠테이션 제작의 수고를 크게 줄여주는 강력한 도구입니다. 특히, 대량의 슬라이드를 한 번에 생성하거나 데이터를 기반으로 프레젠테이션 자료를 자동으로 만들고 싶을 때 최적입니다. 프로그램을 통해 작업이 자동화되므로 효율적이고 높은 품질의 프레젠테이션 자료를 쉽게 만들 수 있습니다.