서론
아래아한글을 이용한 문서 작업의 자동화에 대해 알아보다 보면 가장 먼저 접하게 되는 것은 한글매크로(스크립트 매크로)이다.
하나의 한글 문서 안에서의 편집 자동화는 한글매크로만 활용하여도 충분히 가능하며, 충분히 편리하다.
그런데 다수의 한글 파일을 다루는 작업이나, 혹은 엑셀 파일이나 웹에서 긁어온 데이터 등 한글 외부의 데이터를 가져다가 문서를 작성해야 하는 경우 등 조금 더 복잡한 작업은 한글매크로로는 불가능하다.
(적어도 필자가 아는 한은 그렇다. 잘못 알고 있는 것이라면 알려주기 바란다.)
그렇다면 파이썬을 활용해서 아래아한글을 직접 컨트롤 할 수 있는 방법이 있는지 궁금해지는데, 역시나 이것도 가능하다.
본론
1. pywin32와 win32com
파이썬을 활용하여 아래아한글을 컨트롤하는 것은 win32com 패키지를 통해 가능하다.
win32com은 pywin32라는 라이브러리에 포함된 패키지인데, pywin32 깃허브 페이지에서는 pywin32를 이렇게 소개하고 있다. 파이썬에서 윈도우 API들에 접근할 수 있게 해주는 라이브러리라고 한다.
... provides access to many of the Windows APIs from Python.
그리고 win32com에 관한 소개 페이지에서는 win32com 패키지를 이용하여 엑셀 시트의 A열 1행에 "hello"를 출력하는 간단한 예제를 보여주고 있다.
import win32com.client
o = win32com.client.Dispatch("Excel.Application")
o.Visible = 1
o.Workbooks.Add()
o.Cells(1,1).Value = "Hello"
2. 아래아한글 문서를 열고 간단한 명령어 실행해보기
위의 예제를 보니 한글을 실행하는 것도 꽤 간단할 것 같다.
아래와 같이 둘째 줄을 엑셀 대신 한글로 바꿔 주고, 셋째 줄도 한글의 API에 맞게 바꿔준다.
import win32com.client
o = win32com.client.Dispatch("HWPFrame.HwpObject")
o.XHwpWindows.Item(0).Visible = True
위 코드를 실행해보면, 빈 한글 문서가 하나 열릴 것이다.
※ 셋째 줄이 없더라도 한글은 실행이 된다. 다만 화면에 나타나지 않고 백그라운드에서 실행된다.
한글 문서를 열었으니 간단한 명령어를 하나만 실행해 보자.
위 코드에 아래 코드를 한 줄 덧붙인 뒤에 실행해보면, 한글 문서를 열고 클립보드에 있는 내용까지 붙여넣는 것을 볼 수 있다.
o.HAction.Run("Paste")
'코딩 > 자동화' 카테고리의 다른 글
파이썬을 이용한 웹스크레이핑(웹크롤링) 예제/requests와 beautifulsoup로 웹페이지 정보 추출하기 (0) | 2021.11.30 |
---|---|
파이썬으로 웹 페이지에서 정보 추출하기(웹스크레이핑, 웹크롤링)/Request와 Beautifulsoup 이용하기 (0) | 2021.11.29 |
파이썬을 이용해 한글 문서의 자간을 자동으로 조정하는 방법(win32com, 한글매크로) (2) | 2021.11.25 |
한글매크로를 파이썬에서 실행하는 방법(win32com) (0) | 2021.11.25 |
파이썬으로 파일 자동 분류하는 방법(PC, 스마트폰 모두 가능) (1) | 2021.11.23 |
댓글