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")
변경 확인
텍스트 서식설정
- Cm : cm단위 길이를 Emu단위 길이로 변환하는 클래스 / 텍스트 상자 크기 설정
-Pt : 포인트 단위의 길이를 Emu단위 길이로 변환하는 클래스 / 폰트 설정
- PP_ALIGN : 텍스트의 수평 정렬 옵션을 제공하는 클래스 / 텍스트 정렬 설정
정렬 옵션 | 설명 |
LEFT | 왼쪽 정렬 |
CENTER | 가운데 정렬 |
RIGHT | 오른쪽 정렬 |
JUSTIFY | 양쪽 끝 정렬 |
-RGBColor : RGB색상을 정의하는 클래스 / 텍스트,도형,테두리 등 색상 설정
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")
- MSO_ANCHOR 옵션을 사용하여 속성값을 설정할 수 있다.
정렬 옵션 | 설명 |
TOP | 텍스트를 상자의 맨 위에 정렬 |
MIDDLE | 텍스트를 상자의 수직 중앙에 정렬 |
BOTTOM | 텍스트를 상자의 맨 아래 정렬 |
이 글은 제가 공부하면서 개념정리 겸 작성하는 글입니다.
틀린점이 있을 수도 있습니다.
[파이썬 업무자동화] 다섯번째 - 이미지 불러오기, 편집, 저장(워터마크) (2) | 2025.06.02 |
---|---|
[파이썬 업무자동화] 네번째. 파이썬을 이용한 Excel, PPTX 파일 수정,저장하기 (0) | 2025.06.02 |
[파이썬 업무자동화] 두번째. pandas모듈 이용한 엑셀 파일병합,저장 - 자동화 (0) | 2025.05.30 |
[파이썬 업무 자동화] 첫번째. 라이브러리 와 os모듈 (1) | 2025.05.30 |
[파이썬 알고리즘] 격자그래프 와 백트래킹(backtracking) 개념과 예시코드 (0) | 2025.05.29 |