xython_han
hwp(기초)-아래아 한글의 기본구성에 대한 설명
작성자
sjpark
작성일
2024-09-14 11:43
조회
409
** 한글의 구성형태

한글의 기본적인 구성은 위와같이 공식사이트에서 얻을 수 있는 형태의 구성으로 되어있습니다
먼저 이것에 숨겨진 하나의 기능이 API가 있다는 것입니다
나머지들은 크게 혼돈이 되는부분은 없는데, 1,2번의 경우가 비슷한데 뭐가 틀릴까라고 생각을 하실수가 잇어 추가적으로 설명을 드립니다
1번은 com객체로 만들어줘서, 다른 외부프로그램이 사용가능한 것이라고 생각하시면 됩니다
그래서 저의 han모듈또한 이것을 이용하는 것이 기본입니다
2번은 옛날에 사용하는 부분이기 때문에, 호환을 위해 남겨놓은 것입니다
XhwpMessageBox | 메시지 박스를 제어하는 XHwpMessageBox Object를 얻는다. |
XhwpDocuments | 도큐먼트를 관리하는 XHwpDocuments Object를 얻는다. |
XhwpWindows | 윈도우를 관리하는 XHwpWindows Object를 얻는다. |
HparameterSet | 파라메터셋 오브젝트를 관리하는 HParameterSet Object를 얻는다. |
Haction | Action을 제어하는 HAction Object를 얻는다. |
XHwpODBC | ODBC로 제어할 수 있는 Object를 얻는다. |
IXHwpDocument | 문서에 대한 일반적인 사항들에 대해서 확인이 가능한것 |
IXHwpFormPushButton
IXHwpFormRadioButton … |
객체들에대한 사항 |
IXHwpWindow | 윈도우에대한 사항들 |
HSet | ParameterSet Item 데이터들의 집합 |
HAction | 한글에서 특정 기능을 수행하기 위한 액션 오브젝트 |
HArray | ParameterArray의 데이터 집합 |
XHwpTab | 탭 오브젝트 |
IDHwpAction | DHwpAction과 동일 (호환 유지를 위해 제공됨) |
IDHwpParameterSet | DHwpParameterSet과 동일 (호환 유지를 위해 제공됨) |
IDHwpParameterArray | DHwpParameterArray와 동일 (호환 유지를 위해 제공됨) |
IDHwpCtrlCode | DHwpCtrlCode와 동일 (호환 유지를 위해 제공됨) |
** 한글은 Action기반 언어이다
한글의 경우는 우리가 ms오피스의 vba를 조금 안다면, 이것하고는 조금 다른 구성을 하고 있습니다모든 것을 정확히 설명할 수는 없지만, 개략적인 차이점을 비교해서 설명을 하면
ms오피스 | 한글 |
|
|


** 갑자기 나타나는 HwpCtrl API는 무엇인가?
한글관련된 문서를 보면, 위의 공식적인 그림과 다르게 HwpCtrl이라는 단어가 나타납니다. 이것은 아래아 한글의API 을 통칭하는 단어입니다아랫부분에 간단하게 API와 내부적인 항목들을 사용하는 2가지가 가능한 것을 다보여드리면 아래와 같습니다
그러니, API가 가능하다면 그것을 사용하는 것이 편할수도 있습니다.
즉, 둘중에서 편한 것을 사용하시면 됩니다
아래와같이 2가지의 경우로 함수를 만들어서 실행하면, 다음과 같습니다
def test_001(self):
# HwpCtrl API를 사용한 경우
action = self.han_program.CreateAction("InsertText")
pset = action.CreateSet()
pset.SetItem("Text", "가나다라마바사아")
action.Execute(pset)
# HAction을 사용한 경우
self.han_program.HAction.GetDefault("InsertText", self.han_program.HParameterSet.HInsertText.HSet)
self.han_program.HParameterSet.HInsertText.Text = "123456789"
self.han_program.HAction.Execute("InsertText", self.han_program.HParameterSet.HInsertText.HSet)
# -*- coding: utf-8 -*-
import han
hwp = han.han("")
hwp.test_001()

위의것은 나머지는 제가만든 코드들을 사용해서 한글을 띄우는등의 기능이 있기때문에, 그런것을 보여드리면 더 혼돈이 되기 때문에 나머지는 잊어버리시고, 위의것에 더 집중해서 보시면 더 좋을것같아 그렇게 만들었읍니다
** HwpCtrl API의 구성
HwpCtrlAPI의 문서를 보면, 아래와 같은 구성으로 되어있습니다1 | Action Object | 사용자가 하나의 단위 기능으로 인식하는 글의 기능 각각을 액션이라고 부른다. 예를 들면 “파일열기”, “파일저장”, “표 삽입”, “글자 속성 수정” 등이다. 가장 쉽게 이해할 수 있는 액션의 정의는, '메뉴, 툴바, 단축키를 통해 실행할 수 있는 하나의 기능'으로 생각하면 된다
글 컨트롤을 이용하는 사용자가 글의 액션을 직접 다룰 수 있도록 하기 위한 오브젝트 |
2 | CtrlCode Object | 문서 내부의 표, 각주 등의 컨트롤(특수 문자)을 나타내는 오브젝트 |
3 | HwpCtrl Object | HwpCtrl 오브젝트는 글 컨트롤의 메인 오브젝트로서 다른 오브젝트의 생성, 툴바 제어 등 컨트롤 전반적인 기능 외에 사용 빈도수가
높고 중요한 대부분의 메소드들을 사용자에게 직접 제공 |
4 | HwpCtrl Event | 사용자의 입력에 대한 이벤트를 감지하여 이벤트 핸들러에게 전달해준다. 다음에 소개되는 함수들은 일종의 이벤트 핸들러로 사용자에 맞게 재정의 되어 사용 |
5 | ParameterSet Object | 오브젝트간 또는 액션의 실행에 필요한 정보를 주고받을 수 있도록 하기 위한 오브젝트 |
6 | ParameterArray | parameter set의 아이템으로 배열을 표현하는 데 사용된다. 일반적인 method의 독립적인 인수로 사용되는 일은 없고, parameter set
의 아이템으로만 사용된다 |
7 | HwpMenu | HwpMenu 는 HwpCtrl에서 컨텍스트 메뉴를 다루는 객체 |