[ 한글 자동화 ] 한글 문서에 텍스트 입력하기
들어가며
한글 문서에 텍스트를 입력하는 방법을 알아보겠습니다.
매우 간단한 코드이지만,
이 블로그를 읽고 나시면
간단하게나마 한글 자동화 공식 문서를 보는 방법을 익히실 수 있을 겁니다.
※ 한글 자동화 공식 문서 : 한글 자동화 공식 문서
먼저 한글 프로그램을 파이썬에서 실행하는 방법은
아래 블로그에서 확인할 수 있습니다.
※ 한글 프로그램 실행하기 : 한글 프로그램 실행하기
한글 실행하고 텍스트 입력하기
먼저 아래 코드를 실행하면 한글 프로그램이 실행됩니다.
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) 블로그 목록