본문 바로가기
아래아한글 자동화/python+hwp 중급

그간 잘못된 정보를 알려드려 죄송합니다. 몇 가지 오류 정정

by 일코 2022. 8. 31.

안녕하세요?

길다면 긴 기간 동안 아래아한글 자동화를 공부하면서 유튜브 영상으로, 블로그 포스팅으로 이것저것 남겨 왔는데, 현 시점에서 수정하고 싶은 부분이 몇 개 있습니다. (일종의 포스팅 정오표 같은 것...)

읽으셔도 크게 도움 되지 않겠지만, 한 번은 정리해야겠다 싶었는데 오늘에야 포스팅으로 남깁니다.

 

1. "누름틀에 예약어가 있다?" - 누름틀에는 예약어가 없다.

 

제 첫 유튜브 영상의 오류입니다.

https://youtu.be/1pC_UXhiJH8

해당 영상에 고정댓글로 달아놓기는 했는데,

누름틀에는 예약어가 없습니다. 다만, 동일한 누름틀이 문서에서 여러 개 존재하는 경우, 의도한 대로 입력되지 않을 수 있습니다. (물론 한/글 API에는 동일명의 누름틀 중 몇 번째 누름틀에 텍스트를 채울지 지정할 수 있기는 합니다.)

 

2. 한/글을 열고 백그라운드 해제할 때(FileNew?)

제가 한/글 자동화를 시작한 시점에 사용한 버전은 2010이었습니다. 당시에는 파이썬으로 한/글을 열었을 때 바로 한/글 창이 떴기 때문에, 오히려 win32gui 모듈을 이용해서 한/글 창의 핸들값을 찾아서 백그라운드로 숨기는 작업을 별도로 추가해야 했습니다.

 

그러다 얼마 후에는 업데이트를 하더니 한/글 창이 기본적으로 백그라운드에서 열렸고, 창이 보이게 하는 코드를 추가해야 했습니다.

 

당시 어느 독자분께서 감사하게도 hwp.Run("FileNew")를 실행하면 "빈 문서 2" 창이 뜬다고 제보해 주셔서 저도 몇 달간 그 방법을 사용해 왔습니다.

 

그런데 위 방법은 한 가지 아쉬운 점이 있습니다. 백그라운드에서도 한/글 창이 하나 더 돌고 있다는 점입니다. 그 때문에 현재 문서를 hwp.Run("FileClose")로 닫더라도 백그라운드에는 한/글이 실행되고 있습니다. (hwp.Quit()을 실행하여 닫아주어야 합니다.)

 

그런데 한/글 API 문서에는 고맙게도 한/글 창을 숨기고 나타나게 하는 간단한 코드가 명시되어 있었습니다.

# import win32com.client as win32

# hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject")
hwp.XHwpWindows.Item(0).Visible = True  # 숨김해제
hwp.XHwpWindows.Item(0).Visible = False  # 숨김

대소문자 때문에 다소 입력이 까다롭지만 굉장히 직관적인 명령어네요.

저도 현재는 이 방법을 사용하고 있습니다.

 

3. "hwpframe.hwpobject"

win32com 모듈에서 한/글을 디스패치하는 클래스명입니다.

API문서에서는 "HWPFrame.HwpObject" 라고 명시되어 있지만,

파이썬으로 한/글을 열 때는 재미있게도 대소문자를 구분하지 않습니다.

아래 코드는 한/글이 정상적으로 실행됩니다.

import win32com.client as win32

hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject")

 

생각만 할 때는 엄청 많은 것 같았는데, 막상 포스팅으로 남기자니 굉장히 하찮은 것들 같기도 해서

굵직한 세 개만 남겨놓습니다. 나머지 정정 내용은 틈틈이 포스팅으로 남겨보겠습니다.

 

 

마치며

최근 "한글 파이썬" 등의 키워드로 포털검색을 해 보니

기쁘게도 파이썬으로 아래아한글을 다루는 블로그가 조금씩 생기고 있는 것 같아 기쁩니다.

제가 공기업 재직 당시, 현업에 한/글 업무자동화를 활용하기 위해 공부하던 때에는

참고할 블로그 같은 게 하나도 없어서

답답한 마음에 몇 장 안 되는 API문서를 몇 시간 동안 뒤적거렸거든요ㅜ

 

미천하지만 제 블로그에 적잖은 열정을 쏟아붓고,

밑천이 동날 때까지 포스팅을 남겨 왔습니다.

 

다만 아쉬운 점은..

그때그때 메일이나 댓글, 방명록으로 질문 주신 내용을 바탕으로 포스팅을 작성하다 보니

구조나 순서 없이 중구난방으로 작성이 되어 있어

한/글 업무자동화에 입문하시는 분들에게는 이 블로그 글들이 다소 난해해 보일 것 같습니다.

(그런 점에서 다른 블로거 분들이 깔끔하게 작성한 글이나 간결한 코드들을 보면서 많이 감탄하고 있습니다.)

 

현재는 저도 구구절절한 사연을 거쳐

사무직과 먼 일을 하고 있기 때문에

많은 시간을 쏟기 어렵지만

파이썬 한/글 자동화를 배우기에 적당한 순서로

어느 정도 내용을 보완/정리해서

위키북스나 온라인 강의 사이트 같은 곳에

새로 깔끔하게 올려놓고 싶은 마음이 굴뚝 같습니다.

감사하게도 제안 주시는 분들이 계셨는데

올해가 가기 전에 꼭 착수를 해 보고 싶습니다.

 

하여튼 이 글 읽어주시는 분들 모두

매사에 건승하시고, 건강하시길 빕니다.

행복한 하루 되세요!

 

일상의코딩 / 신명진 드림

 

댓글