한글 자동화를 처음 공부할 때 헷갈렸던 부분입니다.
제가 이해한 것이 맞는지는 정확하지 않지만,
어떻게 자동화를 하는지 표 만들기를 통해 알아보겠습니다.
한글 자동화 공식 문서 : 한글 자동화 공식문서 링크가 있는 글
먼저 실행중인 한글 파일의 제어를 위한 객체 생성 코드는 아래를 참고하시기 바랍니다.
※ 실행 중인 한글(Hwp, Hwpx) 프로그램 조작하기
표 만들기 기본 코드
한글 객체 hwp를 생성한 다음 아래와 같이 작성합니다.
act = hwp.CreateAction("TableCreate")
set = act.CreateSet()
act.GetDefault(set)
set.SetItem("Rows", 2)
set.SetItem("Cols", 4)
act.Execute(set)
이 코드를 실행하면 2줄 4칸짜리 표를 만들 수 있습니다.
CreateAction() 함수
공식 문서를 보면 CreateAction() 함수는 아래와 같이 설명되어 있습니다.
먼저 CreateAction() 함수는 파라미터가 액션 ID입니다.
CreateAction(액션 ID) 이런 식으로 작성하게 되고
액션 ID는 별도 문서를 참고하라고 되어 있습니다.
별도 문서는 ActionObject.pdf 파일입니다.
우선 표 만들기의 액션 ID는 TableCreate입니다.
그러므로 표를 만들기 위해서는
hwp.CreateAction("TableCreate")를 하면 됩니다.
그다음 Remark 부분을 살펴보면,
기능을 수행하지 않고 대화상자만 띄운다든지,
대화상자 없이 지정한 옵션에 따라 기능을 수행하는 등에 사용할 수 있다
우선 기능을 수행하지 않고 대화상자만 띄우는 것에 대한 것은
이 블로그에서 작성하려는 것과 거리가 있으므로 설명은 생략하고,
대화상자 없이 지정한 옵션에 따라 기능을 수행한다는 부분을 살펴보겠습니다.
한글 프로그램에서 표를 만들 때
단축키 Ctrl + N + T를 누르면 표 만들기 대화상자가 나타나고
내가 원하는 옵션 지정 후에 확인을 누르면 표가 만들어집니다.
위 코드를 실행하면 이 절차가 눈에 보이지 않고 한 번에 실행되어
표가 만들어 지는겁니다.
물론 옵션은 별도로 지정해야 합니다.
옵션의 지정 방법은 아래에서 설명하겠습니다.
CreateSet() 함수
CreateSet() 함수의 설명은 다음과 같이 되어 있습니다.
액션과 대응하는 Parameter Set을 생성한다.
정확한 표현인지 모르겠지만,
Parameter Set은 위에서 CreateAction() 함수를 설명할 때 언급했던
옵션이라고 보시면 됩니다.
CreateAction("TableCreate")를 통해 표 만들기의 액션을 하겠다고 말해주고,
act = hwp.CreateAction("TableCreate")를 통해
act에 무슨 액션을 할 것인지 저장합니다.
그리고 액션에 대응하는 Parameter Set을 CreateSet() 함수를 통해 생성합니다.
act.CreateSet()
다시 말해 당신이 무엇을 하고 싶은지 알려주면(CreateAction)
당신이 하고 싶은 거에 대한 옵션이 무엇이 있는지 가져오겠다.(CreateSet)
GetDufault() 함수
GetDefault() 함수의 설명은 다음과 같습니다.
앞서 CreateAction()과 CreateSet()으로
무엇을 할지 정했고, 무엇을 설정할 수 있는지 알아왔습니다.
act = hwp.CreateAction("TableCreate")
set = act.CreateSet()
GetDefault() 함수는 무엇을 할 수 있는 것을 초기화하는 것입니다.
그냥 기본값으로 설정해 버린다고 생각하시면 될 것 같습니다.
액션(act)을 기본 값으로 초기화한다
act.GetDefault(set)
Execute() 함수
Execute() 함수는 다음과 같이 설명되어 있습니다.
지금까지 무엇을 할지 알려주었고, 그 옵션이 무엇인지까지 정했으니,
실행하라는 의미입니다.
코드는 다음과 같습니다.
act.Execute(set)
act를 실행한다. 그 옵션은 set이다.
앞서 set이 무엇인지 알아왔고(set = act.CreateSet())
그다음 act.Default(set)을 통해 액션에 대한 기본 옵션을 초기화했습니다.
그다음 실행을 하라는 의미입니다.
act 액션을 실행해라. 옵션은 set이다.
그러므로 아래와 같이만 작성해도 표는 만들어집니다.
act = hwp.CreateAction("TableCreate")
set = act.CreateSet()
act.GetDefault(set)
act.Execute(set)
SetItem() 함수
SetItem() 함수의 설명은 다음과 같습니다.
표 설정에 대한 기본값을 정했지만,
우리는 그 기본값을 변경하여 우리가 원하는 모양의 표를 만들어야 합니다.
그 기본값을 변경하기 위해서는 SetItem() 함수를 사용합니다.
옵션을 변경해야 하므로 앞서 설정한 변수 set을 통해 접근합니다.
act = hwp.CreateAction("TableCreate")
set = act.CreateSet()
act.GetDefault(set)
set.SetItem("rows", 2)
set.SetItem("Cols", 4)
그 옵션은 처음 액션 ID를 찾았을 때 보았던 문서에서 확인할 수 있습니다.
표 만들기에 대한 옵션은 ParameterSetObject 파일에서 TableCreation을 찾으면 됩니다.
TableCreation을 보면 아래와 같이 되어 있습니다.
여기서 만약
열을 10개, 행을 3개로 하는 표를 만들고 싶다면
아래와 같이 작성하면 됩니다.
set.SetItem("Rows", 3)
set.SetItem("Cols", 10)
※ Type에 대한 설명 참고 : 한글 자동화 ParameterSet Type 정리
대소문자 구분을 하므로 대소문자가 틀리지 않게 작성하시기 바랍니다.
마치며
지금 설명한 코드는 한글 자동화에서 CreateAction()을 수행하는 기본적인 코드입니다.
다른 분들도 그런지 모르겠지만, 저 같은 경우
CreateAction(), CreateSet(), GetDefault(), SetItem(), Execute()
이 함수는 그냥 정해진 것이다라고 생각하고
외워서 사용하고 있습니다.
여기를 방문하시면 더 많은 파이썬 관련 자료를 확인할 수 있습니다.
'파이썬(Python)' 카테고리의 다른 글
[ CustomTkinter ] 파이썬 GUI 탭 뷰 만들기, 탭 만들기 (0) | 2024.10.25 |
---|---|
[ 파이썬 한글 자동화 ] 표 안의 셀 너비와 높이 확인하기 (4) | 2024.10.25 |
[ 파이썬 한글 자동화 ] 엑셀 표를 붙여 넣을 때 공백 지우기, 표 공백 지우기 (1) | 2024.10.17 |
[ 이미지 변환기 ] 그림 파일 용량, 이미지 사진 용량 줄이기 : 자작 프로그램 (2) | 2024.10.16 |
[ 파이썬 한글 자동화 ] 지정한 범위의 텍스트 출력하기, 선택 범위 텍스트 출력 (1) | 2024.10.14 |