python-pptx로 파워포인트 보고서 자동화
python-pptx 라이브러리 소개
-
python-pptx: 파이썬 코드를 사용하여 Microsoft PowerPoint (.pptx) 파일의 생성 및 수정을 자동화하는 라이브러리
-
주요 기능:
- 새 프레젠테이션 생성
- 기존 프레젠테이션 열기 및 수정
- 슬라이드 추가, 레이아웃 적용
- 텍스트, 도형, 표, 그림 등 삽입
- 텍스트 서식 지정
-
설치:
pip install python-pptx
- 임포트: 파이썬 스크립트에서
Presentation
클래스 임포트
from pptx import Presentation
새로운 프레젠테이션 객체 생성
- 새로운 프레젠테이션 객체(
prs
) 생성 - 기본 제공 템플릿(가장 기본적인 슬라이드 마스터와 레이아웃 포함)을 사용하여 생성
prs = Presentation()
- 기존 템플릿 사용:
- 특정
.pptx
파일을 인자로 전달하여 해당 파일을 템플릿으로 사용 가능
prs = Presentation('template.pptx')
슬라이드 레이아웃(Slide Layout) 이해
- 정의: 슬라이드에 미리 정의된 내용 틀(Placeholders)의 배치와 디자인
- 종류: 제목 슬라이드, 제목 및 내용 슬라이드, 섹션 머리글, 빈 슬라이드 등 다양
- 접근:
prs.slide_layouts
속성을 통해 프레젠테이션에 포함된 레이아웃 목록 접근 (리스트 형태)- 각 레이아웃은 인덱스 번호로 구분 (일반적으로 0번은 제목 슬라이드, 1번은 제목 및 내용 등)
새 슬라이드 추가
- 1단계: 사용할 슬라이드 레이아웃 선택
title_slide_layout = prs.slide_layouts[0] # 0번 인덱스: 일반적으로 제목 슬라이드 레이아웃
content_slide_layout = prs.slide_layouts[1] # 1번 인덱스: 일반적으로 제목 및 내용 슬라이드
- 2단계: 선택한 레이아웃으로 새 슬라이드 추가
prs.slides
는 프레젠테이션 내 모든 슬라이드 컬렉션
slide = prs.slides.add_slide(title_slide_layout)
제목 슬라이드에 텍스트 입력 (Placeholder 활용)
- Placeholder (개체 틀): 슬라이드 레이아웃에 미리 정의된 텍스트, 그림 등을 넣을 수 있는 영역
- 접근: 슬라이드 객체의
placeholders
속성 또는shapes
속성으로 접근title_placeholder = slide.shapes.title
(제목 개체 틀) 또는slide.placeholders[0]
(인덱스로 접근, 레이아웃에 따라 다름)subtitle_placeholder = slide.placeholders[1]
(부제목 또는 내용 개체 틀)
- 텍스트 입력:
.text
속성에 문자열 할당title_placeholder.text = "보고서 제목"
subtitle_placeholder.text = "부제목 내용입니다."