누구나 한 번쯤 PowerPoint 발표 자료를 만들어 본 경험이 있을 것입니다. 대부분 Microsoft의 PowerPoint나 Google Slides를 사용해 왔을 텐데요.
하지만 구독권이 없거나 인터넷에 접속할 수 없는 상황이라면 어떻게 해야 할까요? 아니면 단순히 '개발자답게' 코드로 직접 만들어 보고 싶다면요?
걱정하지 마세요. 파이썬이 그 해결책이 되어 줍니다!
이 글에서는 Python을 이용해 PowerPoint 파일을 생성하고 내용을 추가하는 방법을 단계별로 알아보겠습니다.
시작하기
이 튜토리얼에서는 python-pptx 패키지를 사용합니다. 이 패키지는 다양한 Python 버전을 지원하므로, 먼저 자신의 컴퓨터에 적절한 버전의 Python이 설치되어 있는지 확인하세요.
그다음 터미널(또는 명령 프롬프트)을 열고 아래 명령어를 입력합니다.
pip install python-pptx
모듈이 성공적으로 설치되었다면 코딩을 시작할 준비가 끝난 것입니다!
모듈 가져오기
본격적인 작업에 들어가기 전에, 패키지의 다양한 기능을 사용할 수 있도록 필요한 모듈부터 임포트해야 합니다.
PowerPoint 생성에 필요한 모든 메서드를 담고 있는 Presentation 클래스를 임포트해 보겠습니다.
from pptx import Presentation
이제 프레젠테이션을 만들 준비가 완료되었습니다.
프레젠테이션 만들기
먼저 Presentation 클래스의 객체를 생성하여 다양한 메서드에 접근할 수 있도록 합니다.
X = Presentation()
다음으로 프레젠테이션에 사용할 레이아웃을 선택해야 합니다.
python-pptx에는 기본적으로 9가지 레이아웃이 제공되며, 각 레이아웃은 0부터 8까지 번호로 매겨져 있습니다. 예를 들어 '제목 슬라이드(Title Slide)'는 0번, '그림과 캡션(Picture with Caption)'은 8번입니다.
먼저 제목 슬라이드를 추가해 보겠습니다.
Layout = X.slide_layouts[0] first_slide = X.slides.add_slide(Layout) # 첫 번째 슬라이드 추가
레이아웃을 생성하고 프레젠테이션에 슬라이드를 추가했습니다.
이제 첫 번째 슬라이드에 내용을 넣어 보겠습니다.
first_slide.shapes.title.text = "Creating a powerpoint using Python" first_slide.placeholders[1].text = "Created by Tutorialpoints"
위 코드에서는 첫 번째 슬라이드에 제목을 입력하고, 플레이스홀더(placeholder)를 이용해 부제목을 추가했습니다.
이제 save 메서드를 사용해 프레젠테이션을 저장합니다.
X.save("First_presentation.pptx")프로그램을 실행하면 소스 코드가 저장된 디렉터리에 PowerPoint 파일이 생성됩니다.
출력 결과
첫 번째 PowerPoint 프레젠테이션이 성공적으로 만들어졌습니다!
두 번째 슬라이드 만들고 콘텐츠 추가하기
슬라이드에 콘텐츠를 추가하려면 먼저 추가적인 모듈을 임포트해야 합니다.
from pptx import Presentation from pptx.util import Inches
먼저 두 번째 슬라이드를 생성하고 추가합니다.
Second_Layout = X.slide_layouts[5] second_slide = X.slides.add_slide(Second_Layout)
새 슬라이드에 제목을 지정합니다.
second_slide.shapes.title.text = "Second slide"
이제 텍스트 상자(textbox)를 만들고 원하는 위치와 크기로 조정해야 합니다.
인치(inch) 단위로 위치를 지정하고 여백을 조절해 보겠습니다.
textbox = second_slide.shapes.add_textbox(Inches(3), Inches(1.5), Inches(3), Inches(1))
위 코드는 왼쪽에서 3인치, 위쪽에서 1.5인치 떨어진 위치에 너비 3인치, 높이 1인치 크기의 텍스트 상자를 배치합니다.
레이아웃과 위치가 정해졌으니, 이제 내용을 담을 텍스트 프레임(text frame)을 만듭니다.
textframe = textbox.text_frame
이제 문단(paragraph)을 추가해 볼 차례입니다.
paragraph = textframe.add_paragraph() paragraph.text = "This is a paragraph in the second slide!"
마지막으로 save 메서드를 호출해 프레젠테이션을 다시 저장합니다.
X.save("First_presentation.pptx")전체 예제 코드
# python-pptx 패키지로 PowerPoint 프레젠테이션 만들기
from pptx import Presentation
from pptx.util import Inches
X = Presentation()
Layout = X.slide_layouts[0]
first_slide = X.slides.add_slide(Layout)
first_slide.shapes.title.text = "Creating a powerpoint using Python"
first_slide.placeholders[1].text = "Created by Tutorialpoints"
X.save("First_presentation.pptx")
Second_Layout = X.slide_layouts[5]
second_slide = X.slides.add_slide(Second_Layout)
second_slide.shapes.title.text = "Second slide"
textbox = second_slide.shapes.add_textbox(Inches(3), Inches(1.5), Inches(3), Inches(1))
textframe = textbox.text_frame
paragraph = textframe.add_paragraph()
paragraph.text = "This is a paragraph in the second slide!"
X.save("First_presentation.pptx")마무리
여기까지입니다! 이제 파이썬만으로 나만의 프레젠테이션을 만들 수 있습니다.
python-pptx 패키지에는 GUI 프로그램처럼 프레젠테이션을 처음부터 끝까지 자유롭게 꾸밀 수 있는 다양한 기능이 더 많이 포함되어 있습니다.
이미지 삽입, 차트 작성, 통계 시각화 등 무궁무진한 확장이 가능하니, 공식 문서(python-pptx documentation)를 참고하면 더 많은 문법과 기능을 확인할 수 있습니다.