상세 컨텐츠

본문 제목

[파이썬 업무자동화] 세번째. 파이썬으로 PPT제작 그리고 수정 - python-pptx라이브러리

파이썬

by 무딩 2025. 5. 31. 15:09

본문

728x90
반응형
SMALL

 python-pptx라이브러리 

파워포인트 파일을 생성, 수정하는 라이브러리

외부 라이브러리로 파이썬 처음 실행 시

!pip install python-pptx

위 코드를 입력 후 잠시 기다리면 패치가 되며

from pptx import Presentation

입력하여 정상적으로 작동하는지 확인 할 수 있다.


 pptx 새로운 슬라이드 만들기 

prs = Presentation()    #빈 ppt파일 = ppt실행
slide_layout = prs.slide_layouts[0]    
#슬라이드 레이아웃 설정 = 첫번째 슬라이드 설정(ppt에는 총 11개의 슬라이드가 있다.)
slide = prs.slides.add_slide(slide_layout) #새 슬라이드 추가 = ppt파일 접근. 슬라이드 파일 접근. 새 슬라이드 추가

prs.save("test.pptx")    #test라는 이름으로 저장

 pptx 텍스트 입력하기 

PPT에서는 제목, 부제목을 입력하는데 이 부분을 파이썬에서는 "placeholder"라고 부르며 미리 정의된 요소이다.

title = slide.placeholders[0]    #첫 번째 제목부분을 title로 설정
subtitle = slide.placeholders[1]    # 두 번째 부제목부분을 subtitle로 설정

#내용 입력하기
title.text = "파이썬 PPT 작성하기"
subtitle.text = "테스트1"

prs.save("test.pptx")

변경 확인

 텍스트 서식설정 

  • util모듈

          - Cm : cm단위 길이를 Emu단위 길이로 변환하는 클래스 / 텍스트 상자 크기 설정

          -Pt : 포인트 단위의 길이를 Emu단위 길이로 변환하는 클래스 / 폰트 설정

  • enum.text모듈

          - PP_ALIGN : 텍스트의 수평 정렬 옵션을 제공하는 클래스 / 텍스트 정렬 설정

정렬 옵션 설명
LEFT 왼쪽 정렬
CENTER 가운데 정렬
RIGHT 오른쪽 정렬
JUSTIFY 양쪽 끝 정렬
  • dml.color모듈

          -RGBColor : RGB색상을 정의하는 클래스 / 텍스트,도형,테두리 등 색상 설정

  • shapes : 슬라이드 안 도형, 이미지, 텍스트상자 등의 요소 설정

        python-pptx 에서는 shape하는 텍스트들은 text frame이라는 객체에 담겨있고

        text frame에서 줄단위로 구분되는 문단은 paragraph이라고 한다.

         즉 모든 text frame은 모든 paragraph를 가지고있다.

         이때 paragraph안에서 text를 더욱 세밀하게 컨트롤 하고싶을땐 run이라는 객체를 사용할 수 있다.


prs = Presentation()
slide_layout = prs.slide_layouts[6]
slide = prs.slides.add_slide(slide_layout)

#텍스트박스 조건
left = Cm(4)
top = Cm(4)
width = Cm(13)
height = Cm(8)

text_box = slide.shapes.add_textbox(left, top, width, height)   #텍스트박스 추가

#텍스트 상자에 텍스트 추가
text_frame = text_box.text_frame
p = text_frame.paragraphs[0]
p.text = "파이썬 업무자동화"

#텍스트 서식 변경
p.font.name = "HY견명조"    #글꼴 설정
p.font.size = Pt(34)    #텍스트 크기 설정
p.alignment = PP_ALIGN.CENTER    #텍스트 정렬
p.font.color.rgb = RGBColor(219, 115, 205)    #텍스트 색상 설정

prs.save("text2.pptx")

  • fill.solid() : 단색으로 채운다.
  • vertical_anchor : 텍스트의 수직 정렬을 관리하는 속성

            - MSO_ANCHOR 옵션을 사용하여 속성값을 설정할 수 있다.

정렬 옵션 설명
TOP 텍스트를 상자의 맨 위에 정렬
MIDDLE 텍스트를 상자의 수직 중앙에 정렬
BOTTOM 텍스트를 상자의 맨 아래 정렬

 

 

 


이 글은 제가 공부하면서 개념정리 겸 작성하는 글입니다.

틀린점이 있을 수도 있습니다.

728x90
반응형
LIST

관련글 더보기