Type Here to Get Search Results !

Golang: Go언어로 아래아한글(HWP) 텍스트를 입력해보기



앞서  "Golang: Go언어로 아래아한글(HWP) 빈 페이지를 열어보기"에서 Go언어로 아래한글(HWP) 빈 페이지를 띄우는 예제를 보였습니다. 

한글문서를 자동화 하려면 우선 문서에 어떠한 문구를 자동을 입력할 수 있어야 합니다. 

여기서는 텍스트를 입력하는 방법을 보이도록 하겠습니다.

우선, 앞서 빈 페이지를 띄우는 예제는 아래와 같이 동일합니다.
package main

import (
	"github.com/go-ole/go-ole"
	"github.com/go-ole/go-ole/oleutil"
)

func main() {
	// OLE 시스템 초기화
	err := ole.CoInitialize(0)
	if err != nil {
		panic(err)
	}
	defer ole.CoUninitialize()

	// HWP COM 객체 생성
	hwp, err := oleutil.CreateObject("HWPFrame.HwpObject")
	if err != nil {
		panic(err)
	}
	defer hwp.Release()

	// IDispatch 인터페이스 요청 및 반환
	dispatch_hwp, err := hwp.QueryInterface(ole.IID_IDispatch)
	if err != nil {
		panic(err)
	}
	defer dispatch_hwp.Release()

	// HWP 화면 띄우기 시작
	// XHwpWindows 객체 가져오기
	xHwpWindows, err := oleutil.GetProperty(dispatch_hwp, "XHwpWindows")
	if err != nil {
		panic(err)
	}
	defer xHwpWindows.Clear()

	// 창 객체 가져오기
	window := oleutil.MustGetProperty(xHwpWindows.ToIDispatch(), "Item", 0).ToIDispatch()
	defer window.Release()

	// 창의 가시성 설정
	_, err = oleutil.PutProperty(window, "Visible", true)
	if err != nil {
		panic(err)
	}
	// HWP 화면 띄우기 끝
}

위의 코드를 컴파일하고 실행하면 그냥 빈 페이지 입니다. 아래 코드를 main 함수 내 하단에 넣습니다. 
아래 코드가 실제로 텍스트를 삽입하는 코드입니다.


	// 텍스트 입력 시작
	// "InsertText" 액션 생성
	act, err := oleutil.CallMethod(dispatch_hwp, "CreateAction", "InsertText")
	if err != nil {
		panic(err)
	}
	defer act.Clear()

	// Action의 Parameter Set 생성
	pset, err := oleutil.CallMethod(act.ToIDispatch(), "CreateSet")
	if err != nil {
		panic(err)
	}
	defer pset.Clear()

	// Parameter Set에 텍스트 항목 설정
	_, err = oleutil.CallMethod(pset.ToIDispatch(), "SetItem", "Text", "안녕하세요\r\n반갑습니다!")
	if err != nil {
		panic(err)
	}

	// 액션 실행
	_, err = oleutil.CallMethod(act.ToIDispatch(), "Execute", pset.ToIDispatch())
	if err != nil {
		panic(err)
	}
	// 텍스트 입력 끝

위 코드를 보면 텍스트 하나 입력하는데 뭐 이렇게 잡다하게 많은가 싶으실 겁니다. 실제 삽입하고자 하는 텍스트는 "//Parameter Set에 텍스트 항목 설정" 부분에서 이루어집니다. 다만, 텍스트가 삽입되려면 바로 이어 "//액션 실행" 하단 부분이 따라와야 합니다.  이 2가지가 매번 붙어다녀야지, 액션 실행 전에 텍스트 설정을 여러 번 들어가봐야 마지막 것만 남게 됩니다.

위의 코드를 실행하면 다음과 같은 화면이 나옵니다.


이상 간략하게 Go언어로 hwp파일에 텍스트를 입력하는 것을 알아봤습니다.

댓글 쓰기

0 댓글
* Please Don't Spam Here. All the Comments are Reviewed by Admin.