目次
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()
이 코드를 통해 새로운 프레젠테이션이 생성되고, 다음으로 슬라이드와 텍스트를 추가할 준비가 됩니다。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')