RPA/Python

[python-pptx] 텍스트 박스에 글자 입력

꼰대 2021. 5. 8. 18:19

전시회 참석자의 명찰을 파워포인트를 이용해서 만들려고 한다.

아래 구문은 기본 내용이고 확장은 텍스트 상자 입력 부분을 함수로 만들고 회사명/이름 부분을 for문 등을 활용해서 추가 구현하면 된다.

 

 

1. 마스터 슬라이드 생성

슬라이드에 직사각형 도형을 넣고 그 위에 텍스트 상자 2개를 위치하여 하나는 회사명, 나머지 하나는 참석자 이름을 입력

 

 

2. 우측상단 메뉴 "편집 > 선택 > 선택창" 클릭

 

 

3. 우측 선택창에서 회사명 텍스트 상자는 "comp", 이름 텍스트 상자는 "name"으로 변경 후 파일 저장

 

 

4. 실행 소스

 

from pptx import Presentation

from pptx.enum.text import PP_ALIGN

from pptx.util import Pt

# from pptx.enum.dml import MSO_THEME_COLOR

# from pptx.dml.color import RGBColor

 

# 마스터 슬라이드가 있는 파일 불러오기

prs = Presentation('test.pptx')

 

# 첫번쨰 슬라이드 (마스터 폼)

slide = prs.slides[0]

 

shape_list = slide.shapes

shape_idx = {}

 

# {'shape이름':'순번'}의 형태로 dict 생성

# {'직사각형 5': 0, 'comp': 1, 'name': 2}

for idx, value in enumerate(shape_list):

    shape_idx[value.name] = idx



# 텍스트박스 이름

# 이름 : name

# 회사명 : comp

 

# 1. 이름 : name 처리

# 'name'이란 텍스트박스 shape 가져오기

shape = shape_list[shape_idx['name']]

 

tf = shape.text_frame

# 텍스트박스 내 글자 삭제

tf.clear()

# 텍스트 박스 문단 선택

para = tf.paragraphs[0]

# 중앙정렬

para.alignment = PP_ALIGN.CENTER

 

run = para.add_run()

 

# 텍스트 내용 정의

run.text = '꼰  대'

 

# 텍스트에 하이퍼링크 설정

# run.hyperlink.address = 'https://github.com/scanny/python-pptx'

 

font = run.font

 

# 폰트 크기 설정

font.size = Pt(44)

 

# 굵게(bold) 설정

font.bold = True

 

# 글꼴 설정 (맑은고딕)

font.name = 'Malgun Gothic'

 

# 기울림꼴(italic) 설정

# font.italic = True

 

# 폰트 색 설정 (import 주석 해제)

# 정의된 테마 색으로 정의

# font.color.theme_color = MSO_THEME_COLOR.ACCENT_1

# RGB값으로 정의

# font.color.rgb = RGBColor(0xFF, 0x7F, 0x50)



# 2. 회사명 : comp 처리

# 'comp'란 텍스트박스 shape 가져오기

shape = shape_list[shape_idx['comp']]

 

tf = shape.text_frame

tf.clear()

 

para = tf.paragraphs[0]

para.alignment = PP_ALIGN.CENTER

 

run = para.add_run()

run.text = '회사명 : 꼰대주식회사(주)'

 

font = run.font

font.size = Pt(18)

font.name = 'Malgun Gothic'



# 파일 저장

prs.save('test2.pptx')

 

 

5. 결과

 

반응형