PYTHON 한글자동화

[ 한글 자동화 ] 한글 문서에 텍스트 입력하기

나루하루001 2025. 5. 10. 14:25
반응형

 들어가며

 

한글 문서에 텍스트를 입력하는 방법을 알아보겠습니다.

 

매우 간단한 코드이지만,

이 블로그를 읽고 나시면

간단하게나마 한글 자동화 공식 문서를 보는 방법을 익히실 수 있을 겁니다.

※ 한글 자동화 공식 문서 : 한글 자동화 공식 문서

 

먼저 한글 프로그램을 파이썬에서 실행하는 방법은

아래 블로그에서 확인할 수 있습니다.

※ 한글 프로그램 실행하기 : 한글 프로그램 실행하기

 

 한글 실행하고 텍스트 입력하기

 

먼저 아래 코드를 실행하면 한글 프로그램이 실행됩니다.

import win32com.client as win32
import os, shutil

def open_hwp(hwp_visible=True):
    """한글 객체를 생성하고 반환하는 함수"""
    try:
        hwp = win32.gencache.EnsureDispatch('HWPFrame.HwpObject')
        return hwp
    except:
        cache_dir = win32.gencache.GetGeneratePath()
        if os.path.exists(cache_dir):
            shutil.rmtree(cache_dir)

        hwp = win32.gencache.EnsureDispatch('HWPFrame.HwpObject')
        return hwp
    finally:
        if 'hwp' in locals():
            hwp.XHwpWindows.Active_XHwpWindow.Visible = hwp_visible


# 사용 예시
if __name__ == "__main__":
    hwp = open_hwp()

 

 

다음은 텍스트를 입력하는 함수를 추가한 코드입니다.

import win32com.client as win32
import os, shutil

def open_hwp(hwp_visible=True):
    """한글 객체를 생성하고 반환하는 함수"""
    try:
        hwp = win32.gencache.EnsureDispatch('HWPFrame.HwpObject')
        return hwp
    except:
        cache_dir = win32.gencache.GetGeneratePath()
        if os.path.exists(cache_dir):
            shutil.rmtree(cache_dir)

        hwp = win32.gencache.EnsureDispatch('HWPFrame.HwpObject')
        return hwp
    finally:
        if 'hwp' in locals():
            hwp.XHwpWindows.Active_XHwpWindow.Visible = hwp_visible

def input_text(hwp, text):
    action = hwp.CreateAction("InsertText")
    param = action.CreateSet()
    param.SetItem("Text", text)
    action.Execute(param)


# 사용 예시
if __name__ == "__main__":
    hwp = open_hwp()
    input_text(hwp, "안녕하세요.!")

 

반응형

 

 코드 살펴보기

 

input_text() 함수를 살펴보겠습니다.

 

한글 자동화에서 어떤 행동을 하는 기본 패턴

액션을 생성파라미터셋 생성 파라미터 설정 액션 실행

의 순서대로 진행이 됩니다.

 

우선 액션을 생성합니다.

액션을 생성하는 방법은 

HwpAutomation.pdf 문서를 살펴보면

CreateAction() 함수를 사용한다고 되어 있습니다.

 

그리고 별도의 파라미터가 필요하다는 정보도 알 수 있습니다.

 

액션을 생성하기위해

텍스트 입력하는 기능이 어떤 이름의 액션인지 찾기 위해 

ActionTable.pdf 문서를 살펴보아야 합니다.

 

ActionTalble.pdf 문서를 살펴보면

InsertText라는 액션이 텍스트를 입력하는 액션임을 알 수 있고,

파라미터셋 ID 역시 InsertText 임을 확인할 수 있습니다.

 

파라미터셋 ID가 있다는 것은 파라미터가 필요하다는 의미입니다.

 

파라미터를 설정하기 위해서는 파라미터셋을 먼저 만들어야 합니다.

파라미터셋을 만들기 위해서는

CreateSet() 함수를 사용합니다.

 

지금까지 설명한 것이 아래 두 줄의 코드입니다.

action = hwp.CreateAction("InsertText")
param = action.CreateSet()

 

그다음 ParameterSetTable.pdf 파일에서

InsertText를 찾아봅니다.

 

InsertText는 설정할 수 있는 파라미터가 Text 하나임을 확인할 수 있습니다.

그 내용은 삽입할 텍스트입니다.

 

그럼 이제 파라미터를 설정해 줍니다.

파라미터를 설정하기 위해서는 SetItem() 함수를 사용합니다.

param.SetItem("Text", text)

 

이제 실행할 액션이 결정되었고,

그 액션에 필요한 파라미터를 모두 입력했으니

실행을 하면 됩니다.

 

실행을 위해서는 Execute() 함수를 사용합니다.

action.Execute(param)

 

여기서 사용된 함수들은 모두 HwpAutomation.pdf 문서에서

찾아볼 수 있습니다.

 

 

 마 치 며

 

비록 간단하게 텍스트를 입력하는 코드이지만,

이 코드를 자세히 살펴보면

한글 자동화 공식문서를 조금이나마 이해하실 수 있을 겁니다.

[ 파이썬 관련 블로그 글 목록 ] 

파이썬(Python) 블로그 목록

 

반응형