이번 시간에는 파이썬을 이용하여 한글파일 내에 특정 문자열를 찾아 바꾸도록 해보겠습니다.
위 그림에서 보듯이 111.hwp 한글문서 내용입니다.
별 내용은 없고 여기에서 '박지성'이라고 표시된 문자열을 '손흥민'으로 바꾸어 보겠습니다.
코딩내용입니다.
먼저 파이썬 파일내에 한글을 쓰기 위한 구문을 추가합니다.
#_*_coding:cp949_*_
그리고 아래 문구를 한글 액티브액스(open API)를 불러오기 위하여 써줍니다.
import win32com.client as win32
hwp=win32.gencache.EnsureDispatch("HWPFrame.HwpObject")
그리고 111.hwp 한글파일을 열어줍니다.
hwp.Open('e:\\한글\\111.hwp',"HWP","forceopen:true")
그리고 모두 찾아 바꾸기를 하기 위해 명령은 "AllReplace"를 써줍니다.
hwp.HAction.GetDefault("AllReplace", hwp.HParameterSet.HFindReplace.HSet);
찾아 바꾸기에서 세부내용을 셋업해줘야 하는데요
"FindString" 속성에 찾을 문자열을 "ReplaceString" 속성에 새 문자열을 넣어줍니다.
option=hwp.HParameterSet.HFindReplace
option.FindString = "박지성"
option.ReplaceString = "손흥민"
한글 파일에서 Ctrl+F 를 치면 나오는 대화상자에 아래와 같이 해주는 동작과 같습니다.
그리고 명령실행 시 "진짜 바꾸겠습니까?" 라든지 "총 12번 바꿨습니다" 라는 메시지 상자가 나오는데
이를 무시하기 위하여 아래 명령을 써줍니다.
option.IgnoreMessage = 1
그리고 실행해줍니다. 실행되면서 박지성이 손흥민으로 바뀝니다!!
hwp.HAction.Execute("AllReplace", hwp.HParameterSet.HFindReplace.HSet);
그리고 저장을 해주고 한글프로그램을 닫습니다. 끝~
hwp.Clear(3)
hwp.Quit()
수정된 한글파일을 다시 열어보면 짠~ 박지성이 손흥민으로 바뀌어져 있네요!!
보시고 궁금한 내용이 있으시면 댓글 부탁드립니다.
감사합니다.
#_*_coding:cp949_*_
import win32com.client as win32
hwp=win32.gencache.EnsureDispatch("HWPFrame.HwpObject")
hwp.Open('e:\\한글\\111.hwp',"HWP","forceopen:true")
hwp.HAction.GetDefault("AllReplace", hwp.HParameterSet.HFindReplace.HSet);
option=hwp.HParameterSet.HFindReplace
option.FindString = "박지성"
option.ReplaceString = "손흥민"
option.IgnoreMessage = 1
hwp.HAction.Execute("AllReplace", hwp.HParameterSet.HFindReplace.HSet);
hwp.Clear(3)
hwp.Quit()
'파이썬 > 한글 자동화' 카테고리의 다른 글
[파이썬] 한글파일 하나로 합치기 (3) | 2020.07.24 |
---|---|
[파이썬] 한글파일 내 그림 추출하기 (0) | 2020.07.22 |
[파이썬] 한글파일을 엑셀로 옮기기 (16) | 2020.07.20 |
[파이썬] 여러 한글파일 내 전화번호 삭제하기 (0) | 2020.07.15 |
[파이썬] 파이썬으로 한글파일 프린트하기 (1) | 2019.12.25 |