파이썬으로 파워포인트 자동화

전 블로그의 썸네일을 만들 때 파워포인트 자동화로 같은 레이아웃의 글과 이미지만 자동 교체해 만듭니다. python-pptx을 이용해 반복되는 단순한 작업을 자동화해 보았습니다. 본 포스트에서는 파이썬으로 PPT를 제어하는 기본 예제와 직접 사용해 봤던 코드를 추가했습니다.



파워포인트 자동화의 장점

  1. 이미지 크롤링, 파워포인트 생성, 리사이즈, 용량감소(tinyPNG), 자동 포스팅 등 다른 기능과 연동해 완전 자동화 가능.
  2. 반복 작업의 시간을 단축하고, 정확도가 높아짐.




python-pptx 설치

1. 터미널에서 라이브러리를 설치합니다.

pip install python-pptx




파이썬으로 레이아웃 만들기

파이썬으로 파워포인트 만들기_1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
from pptx import Presentation
 
prs = Presentation()
 
slide_layout = prs.slide_layouts[0]
slide = prs.slides.add_slide(slide_layout)
 
title = slide.shapes.title
subtitle = slide.placeholders[1]
 
title.text = “Hello, World!”
subtitle.text = “python-pptx was here!”
 
prs.save(‘test.pptx’)
cs

1 – pptx 라이브러리 포함.
3 – 파워포인트 객체 선언.
5:6 – [0]번은 제목과 부제목이 있는 슬라이드, [6]은 빈 슬라이드.
8:9 – 제목과 부제목에 텍스트 입력.
9 – PPT를 해당 폴더에 저장.




파이썬으로 도형 만들기

파이썬으로 파워포인트 만들기_2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
from pptx import Presentation
from pptx.enum.shapes import MSO_SHAPE
from pptx.util import Inches
from pptx.dml.color import RGBColor
 
prs = Presentation()
 
slide_layout = prs.slide_layouts[6]
slide = prs.slides.add_slide(slide_layout)
 
shapes = slide.shapes
left = top = Inches(1)
width = Inches(8)
height = Inches(5.5)
shape = shapes.add_shape(MSO_SHAPE.RECTANGLE, left, top, width, height)
 
fill = shape.fill
fill.solid()
# fill.patterned()
fill.fore_color.rgb = RGBColor(385070)
 
line = shape.line
line.color.rgb = RGBColor(385070)
 
shadow = shape.shadow
shadow.inherit = False
 
prs.save(‘test.pptx’)
cs

2 – PPT에 도형 삽입 시 사용.
3 – 도형의 크기, 여백 길이 지정 시 사용.
4 – 도형의 색을 RGB로 넣을 때 사용.
11:15 – 직사각형 도형의 여백, 크기 설정.
17:20 – 도형의 채우기 설정.
22:23 – 도형의 외곽선 설정.
25:26 – 기본으로 적용돼 있는 그림자 효과 제거.




파이썬으로 글상자 만들기

파이썬으로 파워포인트 만들기_3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
from pptx import Presentation
from pptx.util import Inches, Pt
from pptx.dml.color import RGBColor
 
prs = Presentation()
 
slide_layout = prs.slide_layouts[6]
slide = prs.slides.add_slide(slide_layout)
 
left = width = height = top = Inches(1.5)
txBox = slide.shapes.add_textbox(left, top, width, height)
tf = txBox.text_frame
 
= tf.add_paragraph()
p.text = “안녕하세요.\n43포인트 글씨입니다.”
p.font.size = Pt(43)
p.font.name = ‘나눔스퀘어 Bold’
p.font.color.rgb = RGBColor(000)
 
= tf.add_paragraph()
p.text = ” \n이것은 20포인트 글씨입니다.”
p.font.size = Pt(20)
p.font.name = ‘맑은 고딕’
p.font.color.rgb = RGBColor(122122122)
p.font.bold = True
 
prs.save(‘test.pptx’)
cs

2 – Pt는 글자의 크기 지정 시 사용.
11:15 – 텍스트 박스의 여백, 크기 설정.
14:18 – 박스 안의 글자 크기, 폰트, 색 설정.
22:23 – 새로운 add_paragraph 함수 사용 시 설정이 초기화됨.




파이썬으로 이미지 만들기

파이썬으로 파워포인트 만들기_4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from pptx import Presentation
from pptx.util import Inches
 
prs = Presentation()
 
slide_layout = prs.slide_layouts[6]
slide = prs.slides.add_slide(slide_layout)
 
img_path = ‘0.jpg’
 
top = Inches(0.75)
left = Inches(0.5)
height = Inches(6)
pic = slide.shapes.add_picture(img_path, left, top, height=height)
 
prs.save(‘test.pptx’)
cs

9 – 삽입할 이미지의 경로 설정.
11:14 – 이미지의 여백과 높이를 설정.




참조 사이트

[python-pptx 라이브러리 문서]
Python-pptx documentation – Home

[파이썬으로 파워포인트 제어하기]
업무 자동화 – 파이썬으로 파워포인트 편집하기



관련글

guest
0 Comments
Inline Feedbacks
모든 댓글 보기