안녕하세요?
회사원코딩의 Martinii입니다.
이번 포스팅에서는 아래아한글의 "찾기/찾아바꾸기"를 파이썬 코드로 재현해보려고 합니다. 나아가 특정 단어를 포함한 문장 전체를 선택해서 서식을 바꾸는 작업까지 코딩해볼게요.
한/글에서 기본적으로 찾기는 Ctrl-F, 찾아바꾸기는 Ctrl-H죠.
예문은 아래 사이트에서 5문단 정도 따왔습니다.
한글 Lorem Ipsum (간세네)
로렘 입숨(lorem ipsum; 줄여서 립숨, lipsum)은 출판이나 그래픽 디자인 분야에서 폰트, 타이포그래피, 레이아웃 같은 그래픽 요소나 시각적 연출을 보여줄 때 사용하는 표준 채우기 텍스트로, 최종 �
guny.kr

이 문서에서 가장 먼저 출현하는 "대통령"을 찾는다든지, 문서 내 모든 "대통령"이라는 텍스트에 [진하게 / 글자색 빨강]을 적용하는 것은 코딩 없이도 금방 할 수 있죠. 문서 분량이 아무리 많더라도요. 아래 과정만 하면 돼요.




근데 이런 작업은 어떨까요?
"대통령"이라는 글자가 들어가는 모든 문장에 [진하게/글자색 빨강] 적용하기라면?
이런 작업은 경우가 달라지죠. 문서분량이 많아질수록 작업시간이 길어지는 작업이 돼요. 이럴 때는 코딩을 사용하면 훨씬 수월할 수 있어요. 코드도 간단하고요. 방법이 여러 가지가 있겠지만, 우선 제가 한 가지 방법을 자세히 설명해드리고, 하단에 추가로 가능한 몇 가지 방법들을 간단히 알려드려볼게요. 보고 연습해 보시는 분은 댓글로 직접 작성한 코드 남겨주시면 피드백 남겨드릴게요.
우선 가장 먼저 생각나는 방법은 이것 같아요.
1. 문서 시작부분으로 이동한 후에

2. 아랫방향 탐색으로 "대통령"을 찾는다.

3. 그 상태에서 윗방향 탐색으로 "."을 찾는다. 오른쪽으로 한 칸 이동하고 그 위치를 start_pos에 저장한다.

4. 그 상태에서 아랫방향 탐색으로 "."을 찾는다. 오른쪽으로 한 칸 이동하고 그 위치를 end_pos에 저장한다.

5. hwp.SetPos(*start_pos) 로 시작부분으로 이동한다.
6. Run("Select") 로 선택모드 실행한 후, hwp.SetPos(*end_pos)로 문장 전체를 선택한다.

7. 선택한 부분의 서식을 변경한다. start_pos를 pos_set이라는 세트에 저장한다.

8. 2번부터 7번까지를 반복한다. 새 start_pos가 pos_set 안에 있으면 while문을 종료한다.
끝.
위의 과정을 코드로 옮겨보았습니다.
결과는 아래와 같습니다.

위 코드 중에 잘 이해가 안 되거나 궁금한 부분은 댓글로 문의 남겨주시기 바랍니다.
주석이나 텍스트 때문에 코드가 조금 길어졌지만, 코드 자체는 간단합니다.
다만 파이썬 문법이나 한/글API가 생소한 분들은 좀 부담스러울 수 있겠네요..
여러분의 IDE로 옮겨서 한 번 실행해보시거나, BreakPoint를 아무 데나 하나 걸고 디버깅을 해보시면서 과정을 살펴보시면 훨씬 빠르고 쉽게 이해가 될 것입니다.
이번 포스팅은 여기서 마치겠습니다.
국내 유일의 파이썬+한컴오피스 업무자동화 입문강의
움짤로 빠르게 배우는 파이썬-아래아한글 자동화 레시피 - 인프런 | 강의
파이썬으로 아래아한글을 다루는 짧은 예제코드들을 소개하고, 중간중간의 결과를 GIF로 보여드립니다. 동영상 강의가 아니지만 오히려 빠르게 배울 수 있고, 따라하기도 쉽습니다., - 강의 소개
www.inflearn.com
'아래아한글 자동화 > python+hwp 중급' 카테고리의 다른 글
2019년 파이콘 참석영상(코알못 직장인) (0) | 2020.08.17 |
---|---|
4. 문서여백을 파이썬으로 바꿀 수 있을까? (6) | 2020.08.12 |
3. 자동화 하실 거면 꼭 정품등록하시고 개발자커뮤니티 들어가보세요! (6) | 2020.08.12 |
댓글