HWP포맷을 사용하는 소규모의 출판사가 의외로 많다는 걸 최근들어 알게 되었다.
그도 그럴 것이, 인디자인이나 퍼블리셔 같은 프로그램 없이도
직접 책을 출판하고 SNS로 홍보할 수 있는 시대가 열렸다. 이 부분은 다음에 더 이야기하기로 하고,
수백 페이지 규모의 HWP문서를 만질 때는, 특히 이미지가 많은 문서라면 정말 고생하는 경우가 있는데,
그 중 최고랄 만한 작업은 바로 "용지를 바꾸거나 여백을 변경했을 때"이다. ㄷㄷㄷㄷ
이러면 표 뿐만 아니라 각각의 이미지 전체를 문서 폭 안으로 우겨넣거나 늘려야 하는데,
(만약 이미지 너비가 "고정값"이 아니면 더 고생한다. 예를 들어 이미지 너비가 "쪽 100%"로 설정되어 있었는데 용지의 좌우여백을 변경해버리면 폭만 자동으로 줄어들어버려서 그림이 좌우로 쪼그라들어버린다.)
작업시간이 문서분량에 비례하는 만큼, 출판작업시 엄청난 노가다 작업이 발생할 수 있는 상황이다.
하지만 몇 가지 스크립트를 익혀두었다면 손쉽게 일괄처리할 수 있다.
모든 코드를 다 외울 필요는 없으며, 외울 수도 없다. 지금 이 상황에 필요한 명령어만 소개해 드리겠다.
(참고로 필자는 파이썬을 애용한다. 한/글 내장스크립트의 한계를 쉽게 넘어설 수 있다.)
우선 자동화작업 순서를 한 번 나열해보겠다.
(단, 문서 내 모든 이미지는 쪽 너비로 "고정값" 삽입된 것으로 가정한다. 이는 문서 끝에 추가설명하겠다.)
자동화작업 순서
좌우가 너무 좁아 보여서, 좌우여백을 각각 10mm씩 추가했다고 가정한다.
1. 문서 내 모든 이미지를 순차적으로 탐색하면서
2. 이미지 하나씩 선택해서,
3. 이미지의 현재 너비와 높이값을 저장해놓고,
4. 이미지 너비를 쪽에 맞춰 수정한 후,
5. 이미지 높이를 그에 맞게 수정한다.(너비의 변경값/기존값 이용)
번호별로 필요한 메서드
1. hwp.InitScan
2. hwp.FindCtrl
3. hwp.CreateAction, CreateSet, GetDefault,
4~5. CreateItemSet, SetItem, MiliToHwpUnit, Execute
이 정도면 충분할 것 같다.
예제로 첨부한 HWP파일은

간단히 설명드리면, 용지설정에서 제본여백 15mm를 추가했더니, 그림이 오른쪽으로 15mm 튀어나와버린 상태이다.
같이 따라해보고 싶은 분들을 위해 파일도 아래 첨부한다.
결과를 먼저 보여드림.

코드는 아래와 같다.
hwp스크립트의 가장 큰 장점이라면 역시,
타 프로그램 대비 굉장히 디테일하고 강력하게 문서수정을 할 수 있다는 점이 아닐까?
반면 위처럼 간단한 작업임에도 코드가 다소 길어지는 아쉬움이 남는다.
(직접 짜는 방식이 아니라 API매뉴얼이나 스크립트녹화코드에서 복붙하는 방식이라, 의외로 작업은 빠르다.)
라인별로 간단한 주석을 달아놓았지만, 이해하기 쉽지 않은 부분도 있을 것.
일부 메서드나 한/글컨트롤 문법은 다른 포스팅에서 추가로 설명할 예정이지만,
방명록이나 댓글로 문의 남겨주시면 언제든 답변해 드리고자 한다.
다만, 코드나 파일을 가지고 이야기를 나눠야 할 경우 martinii.fun지메일로 보내주시면 된다.
이번 포스팅은 여기서 마친다.
긴 글 읽어주셔서 감사하다.
행복한 하루 되시길!
국내 유일의 파이썬+한컴오피스 자동화 입문강의
움짤로 빠르게 배우는 파이썬-아래아한글 자동화 레시피 - 인프런 | 강의
파이썬으로 아래아한글을 다루는 짧은 예제코드들을 소개하고, 중간중간의 결과를 GIF로 보여드립니다. 동영상 강의가 아니지만 오히려 빠르게 배울 수 있고, 따라하기도 쉽습니다., - 강의 소개
www.inflearn.com
'아래아한글 자동화 > python+hwp 중급' 카테고리의 다른 글
[커뮤니티질문] HWP문서의 특정 셀에 색을 넣고 싶은데요. (3) | 2021.01.09 |
---|---|
[펌]한글 파일로부터 우리를 구원할 hwp.js (0) | 2020.12.30 |
[교육업무자동화1/7] 청구서자동화1(누름틀 다루기) (0) | 2020.12.29 |
댓글