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

셀에 그라데이션 넣는 메서드 : gradation_on_cell

by 일코 2024. 1. 8.

pyhwpx.Hwp().gradation_on_cell
셀에 다양한 그라데이션 패턴을 간편하게 코드로 삽입할 수 있는 메서드입니다.
(아마 회사원들이 자주 사용할 메서드는 아니겠지만.. 문의가 들어온 적은 있었거든요ㅎ)

간단한 사용법은 아래와 같습니다.

from pyhwpx import Hwp

# 빈 문서를 열고, 1x1의 표를 생성 후 사이즈 조절
hwp = Hwp()
hwp.create_table(1, 1)
for _ in range(100):
	hwp.TableResizeDownEx()


# 현재 셀에 Red~Green 그라데이션 삽입
hwp.gradation_on_cell(["Red", "Green"])

1. 첫 번째 파라미터(color_list)에 여러 개 컬러를 넣으면,
넣는 대로 색이 들어갑니다. (최대 10개 가능)

①색을 하나만 넣으면 단순히 색채우기와 동일하게 작동합니다.

②현재 문자열로 삽입가능한 색은 아래 24개 색입니다.
"Red": (255, 0, 0),"Green": (0, 255, 0),"Blue": (0, 0, 255),"Yellow": (255, 255, 0),"Cyan": (0, 255, 255),"Magenta": (255, 0, 255),"Black": (0, 0, 0),"White": (255, 255, 255),"Gray": (128, 128, 128),"Orange": (255, 165, 0),"DarkBlue": (0, 0, 139),"Purple": (128, 0, 128),"Pink": (255, 192, 203),"Lime": (0, 255, 0),"SkyBlue": (135, 206, 235),"Gold": (255, 215, 0),"Silver": (192, 192, 192),"Mint": (189, 252, 201),"Tomato": (255, 99, 71),"Olive": (128, 128, 0),"Crimson": (220, 20, 60),"Navy": (0, 0, 128),"Teal": (0, 128, 128),"Chocolate": (210, 105, 30)

③물론 색깔별로 직접 RGB값을 튜플로 입력하실 수도 있습니다.

2. 각도는 angle 파라미터로 변경할 수 있습니다. (단위: degree)

angle=0일 때 그라데이션 진행방향은 "수직방향 아래로"이며,
값이 커질수록 시계방향으로 회전합니다.

3. pos_list를 통해 특정 색의 범위를 조절할 수 있습니다.

pos_list는 [0, m, n, ..., 100] 식으로 지정할 수 있는 색범위라고 보시면 됩니다. (단위는 %)
예를 들어 ["Red", "Yellow", "Green"] 세 가지 색으로 그라데이션을 삽입하는데,
Red-Yellow의 비중을 75 정도로, Yellow-Green의 비중을 25 정도로 주고 싶으면?
pos_list=[0, 75, 100] 이라고 주시면 됩니다. (기본값은 균등분할입니다.)

시작과 끝인덱스의 값은 항상 0과 100이어야 합니다.
만약 끝값이 90이라면, 끝 10%의 영역을 검정색이 채우고,
시작값이 10이라면 시작 10%의 영역에 두 번째 영역의 값이 채워집니다. (grad_type="Linear"의 경우)

4. xc와 yc를 통해 그라데이션 시작점을 변경할 수 있습니다.

기본값은 xc=0, yc=0입니다. 좌측상단 꼭지점이 (0, 0)이며, 우측하단이 (100, 100)입니다.

 

5. grad_type으로 그라데이션 모양을 변경할 수 있습니다.

기본값은 "Linear"(줄무늬)이며, 이 밖에도 "Radial"(원형), "Square"(사각형), "Conical"(원뿔) 등 세 가지를
별도로 지정할 수 있습니다. (타입에 따라 xc와 yc를 적절히 변경해줘야 하는 경우도 있습니다.)

 

6. step으로 그라데이션 색의 단계를 조절할 수 있습니다.

기본값은 255이며, 0은 검정, 1은 시작색(단색)이 되어버리기 때문에,
2~255까지 자유롭게 주시면 됩니다. (color_list가 세 개 이상인 경우는 끝색까지 도달하지 않는 경우가 있습니다.)

 

7. 마지막으로 step_center는
중간점에 도달하는 일종의 진행속도입니다.

영상이나 음향작업을 하시는 분들에게 익숙한 ease_in이나 ease_out 같은 개념입니다.
pos_list는 특정 색 사이의 영역 길이를 조절할 수 있다면,
step_center는 전체적인 관점에서 시작점에서 끝점까지,
시작에서 중간까지 가파르게 갈 건지, 혹은 시작은 완만하게 가다가 중간에서 끝까지 가파르게 갈지 등을
조절할 수 있습니다. 예시를 보여드리면

 

마치며

여기까지, gradation_on_cell 메서드의 파라미터와 사용법에 대해 설명드렸습니다.
대부분의 회사원 분들은 아래아한글로 이런 그라데이션 작업을 하지 않을 것이므로
괜히 시간을 쏟았나 싶기도 하지만,
개인적으로는 한/글에서 제공하는 API 중에 제법 복잡한 편에 속하는 메서드이기도 하고,
한/글 인터페이스에서는 세 개 이상의 색을 삽입할 수 없기 때문에
불필요하더라도 하나쯤은 있어줘도 되는 유니크한 메서드 아닌가 싶기도 합니다^^

그럼 새로운 메서드로 찾아뵙겠습니다.

행복한 하루 되세요^^

 

 

댓글