한글 자동화를 하다 보면
이미 입력이 되었는 것들의 정보를 확인해야 하는 경우가 종종있습니다.
셀의 너비와 높이 확인하기
먼저 실행 중인 한글 파일을 조작하기 위해
객체를 생성해 줍니다.
※ [ 파이썬 한글 자동화 ] 실행 중인 한글(Hwp, Hwpx) 프로그램 조작하기
한글 자동화 공식 문서는 아래 블로그에 링크가 있습니다.
전체 코드는 다음과 같습니다.
act = hwp.CreateAction("TablePropertyDialog")
set= act.CreateSet()
pset = set.CreateItemSet("ShapeTableCell", "Cell")
act.GetDefault(set)
print(pset.Item("Width")/7200*25.4)
print(pset.Item("Height")/7200*25.4)
공식 문서를 살펴보면 ActionObject 문서에 다음과 같이 되어 있습니다.
TablePropertyDialog는 파라미터셋이 ShapeObject입니다.
ParameterSetObject 문서에서 ShapeObject 부분을 살펴보면 셀과 관련된 부분을 찾을 수 있습니다.
ShapeTableCell은 Type이 PIT_SET이고
셀 속성 개체(HCELL)에 하위 속성이 정의되어 있는 것으로 보입니다.
※ Type가 무엇인지? : 한글 자동화 ParameterSet Type 정리
ParameterSetObject 문서에서 HCell을 찾아보면 다음과 같이 되어 있습니다.
Width와 Height로 셀의 높이와 폭을 알 수 있고,
반환되는 값의 단위는 HWPUNIT입니다.
다시 코드를 살펴보겠습니다.
act = hwp.CreateAction("TablePropertyDialog")
set= act.CreateSet()
TablePropertyDialog를 CreateAction을 통해 실행하면
ShapeObject의 내용을 가지고 오는데
셀을 다루려면
ShapeObject안의 ShapeTableCell을 확인해야 하고
ShapeTableCell의 내용은 HCell에 있다.
set에는 이미 ShapeObject의 내용이 있으므로
set 변수를 통해 ShapeObject의 하위에 있는 내용에 접근하기 위해
아래와 같이 코드를 한 줄 더 작성합니다.
pset = set.CreateItemSet("ShapeTableCell", "Cell")
그럼 pset을 통해 ShapeTableCell 안의 HCell에 접근이 가능해집니다.
그다음 GetDefault() 함수를 실행하고
pset 변수를 통해 HCell에 접근합니다.
act.GetDefault(set)
print(pset.Item("Width")/7200*25.4)
print(pset.Item("Height")/7200*25.4)
결괏값을 7200으로 나누고 25.4를 곱한 이유는
위에서 보셨듯이 반환값의 단위가 HWPUNIT인데
7200 HWPUNIT은 1인치이고
1인치는 25.4 밀리미터이기 때문에
밀리미터 단위로 보고 싶어서 이렇게 했습니다.
확인하기
한글에서 표를 만들고 확인해 보면 아래 그림과 같이
셀의 너비와 높이를 볼 수 있습니다.
너비는 68.19mm 높이는 4.52mm로 확인됩니다.
이제 셀 안에 커서를 놓고 코드 실행결과를 확인해 보겠습니다.
너비는 68.19194444444445mm
높이는 4.522611111111111mm
한글 프로그램에서 확인한 것과 비슷하게 나옵니다.
이 코드도 대부분의 속성을 확인하는 데 사용됩니다.
여기를 방문하시면 더 많은 파이썬 관련 자료를 확인할 수 있습니다.
'파이썬(Python)' 카테고리의 다른 글
[ pynput ] 파이썬(Python) pynput에서 사용할 수 있는 특수키 목록 (0) | 2024.10.29 |
---|---|
[ CustomTkinter ] 파이썬 GUI 탭 뷰 만들기, 탭 만들기 (0) | 2024.10.25 |
[ 파이썬 한글 자동화 ] 한글 문서 표 만들기, 한글 자동화 CreateAction(), CreateSet(), GetDefault(), SetItem(), Execute() (4) | 2024.10.24 |
[ 파이썬 한글 자동화 ] 엑셀 표를 붙여 넣을 때 공백 지우기, 표 공백 지우기 (1) | 2024.10.17 |
[ 이미지 변환기 ] 그림 파일 용량, 이미지 사진 용량 줄이기 : 자작 프로그램 (2) | 2024.10.16 |