본문 바로가기
아래아한글 자동화/pyhwpx 사용법

[pyhwpx] 폰트 설정을 위한 set_font 메서드

by 일코 2024. 1. 26.

아래아한글의 글자모양은 제법 다양한 옵션들을 가지고 있습니다.
일반적인 보고서를 작성할 때 사용하는 글자크기(height), 위첨자와 아래첨자, 특별한 경우 글자색을 넣는 정도 외에도
다양한 글자모양 옵션을 아래와 같이 간단한 명령어를 조합하여 적용해볼 수 있습니다.

 

hwp.set_font()의 파라미터 목록

Bold: 진하게 적용(True/False)
DiacSymMark: 강조점(0~12)
Emboss: 양각(True/False)
Engrave: 음각(True/False)
FaceName: 서체 이름
FontType: 1(TTF, 기본값)
Height: 글자크기(pt, 0.1 ~ 4096)
Italic: 이탤릭(True/False)
Offset: 글자위치-상하오프셋(-100 ~ 100)
OutLineType: 외곽선타입(0~6)
Ratio: 장평(50~200)
ShadeColor: 음영색(RGB, 0x000000 ~ 0xffffff) ~= hwp.rgb_color(255,255,255), 취소는 0xffffffff(4294967295)
ShadowColor: 그림자색(RGB, 0x0~0xffffff) ~= hwp.rgb_color(255,255,255), 취소는 0xffffffff(4294967295)
ShadowOffsetX: 그림자 X오프셋(-100 ~ 100)
ShadowOffsetY: 그림자 Y오프셋(-100 ~ 100)
ShadowType: 그림자 유형(0: 없음, 1: 비연속, 2:연속)
Size: 글자크기 축소확대%(10~250)
Spacing: 자간(-50 ~ 50)
StrikeOutColor: 취소선 색(RGB, 0x0~0xffffff) ~= hwp.rgb_color(255,255,255), 취소는 0xffffffff(4294967295)
StrikeOutShape: 취소선 모양(0~12, 0이 일반 취소선)
StrikeOutType: 취소선 유무(True/False)
SubScript: 아래첨자(True/False)
SuperScript: 위첨자(True/False)
TextColor: 글자색(RGB, 0x0~0xffffff) ~= hwp.rgb_color(255,255,255), 기본값은 0xffffffff(4294967295)
UnderlineColor: 밑줄색(RGB, 0x0~0xffffff) ~= hwp.rgb_color(255,255,255), 기본값은 0xffffffff(4294967295)
UnderlineShape: 밑줄형태(0~12)
UnderlineType: 밑줄위치(0:없음, 1:하단, 3:상단)
UseFontSpace: 글꼴에 어울리는 빈칸 적용여부(True/False)
이밖에도 UseKerning과 SmallCaps 파라미터가 있지만, 둘 다 현재는 쓰이지 않는 것 같습니다.
폰트를 한/영 여러 번 바꿔가면서 적용해봤는데 변동이 없더라고요ㅜ

 

예를 들어 아래와 같이 실행해볼 수도 있고요.

set_font로 이런저런 시도를 해봄

소스코드는 아래와 같습니다.

from random import randint
l = hwp.get_available_font()

for i in range(705):
    hwp.MoveSelNextChar()
    hwp.set_font(
        Bold=randint(0, 1),
        Italic=randint(0, 1),
        Offset=randint(-10, 10),
        Spacing=randint(-20, 20),
        Ratio=randint(90, 110),
        Height=randint(30,55),
        FaceName=l[randint(0, 211)],
        TextColor=hwp.rgb_color(
            randint(50, 255), randint(50, 255), randint(50, 255)
        ))
    hwp.Cancel()

 

재미있네요ㅎ

유용하게 써주시길 바랍니다.

댓글