본문 바로가기

파이썬-아래아한글 자동화 응용

[교육업무자동화1/10] 청구서자동화1(누름틀 다루기)

(전략)

우리 ㅇㅇㅇㅇㅇㅇ협회 교육운영팀은
20XX년부터 고용노동부 국가인적자원개발 컨소시엄 사업으로 전환하여 

비회원사까지 대상으로 교육을 개최할 수 있게 되어 
매우 큰 자긍심을 가지고 교육 준비 및 개최를 하고 있습니다. 

다만, 교육접수안내, 개별문의 응답
일일이 전달을 드리거나 문의응답하는 데

상당히 어려움이 있는 상황입니다. 

2~3명의 인원이 사업계획 작성 및 교육개발, 교육운영, 비용정산, 회계감사, 홍보, 수요조사, 운영위원회 등
독립교육센터와 유사한 수준으로 모든 단계의 업무를 직접 진행하고 있습니다. 
아울러 업계 교육인원이 많지 않아 관련 자동화 프로그램 개발은 어렵기에, 
교육비 청구서, 납부확인증, 수료증을 비롯 각종 문서도 "한/글"로 수작업 중입니다. 

우리 팀이 있기 전에는 회원사만 대상으로, 연간 교육 4회, 교육생 60-70명 수준의 규모였으나
현재는 200여개 기업, 연간 교육 30회, 교육생 400여명 수준으로 확대되었습니다. 

우리팀은 업계가 가장 안 좋은 시절 탄생하여, 
협회 회원사가 반으로 줄어드는 상황에서도 

규모를 10배 가까이 키우고, 내실도 기하고 있습니다. 

하지만 주어진 환경적 어려움이 있으니,
(후략)

지난 포스팅은...

 

 

[교육운영업무 자동화] 청구서, 영수증 및 수료증 자동발급

개 요 이번에 알려드릴 파이썬-한/글 자동화 주제는, 교육운영부서에서 흔히들 가장 시간을 많이 잡아먹는 막중3종 업무세트인 "교육비 청구서, 납입영수증 및 수료증 발급"이다. 본 포스팅에 사

www.martinii.fun


 

미리 밝혀두지만, 여러분이 업무자동화를 시도하는 이유는, 같은 시간에 더 많은 일을 하기 위함이 절대 아니다. 더 많은 여유를 갖기 위함이라는 점을 항상 잊지 말자. 편하자고 만든 자동화 코드가 여러분의 삶을 더 빡빡하고 피폐하게 만들 수 있다.

자, 첫 포스팅이다. 청구서를 자동으로 완성해주는 "코드"를 작성해보면서, 비즈니스자동화, 소위 업무자동화의 과정에 대해 알아가는 과정이 되었으면 한다. 나아가 여러분 각자의 업무에도 활용할 수 있는 코드를 직접 작성할 수 있게 되기를 바란다.

지난 포스팅에서 언급한 바 있는 청구서 자동화부터 진행해보려고 한다. 우선 기존의 업무프로세스는 아래와 같다.

청구서 서식

위 서식 중 금액, 교육명, 청구일자, 소속 및 성명은 엑셀파일로 정리되어 있으며,

1. 교육생마다 금액, 소속, 성명을 Ctrl+C, Ctrl+V로 작업한 후

2. 교육생마다 파일명을 다르게 하여 PDF로 변환, 저장한다.

3. 교육생 각각의 이메일로 위 청구서를 첨부하여 개별송부한다.

위 작업에 걸리는 시간은 교육생 1명당 약 2분 정도로, 100명만 잡아도 3시간반 가량이다.


튜토리얼 느낌으로 따라해 보고 싶은 분들을 위해, 청구서 파일을 아래에 첨부해놓았다.

청구서.hwp
0.03MB

첨부한 청구서처럼, 문서의 큰 틀이 바뀌지 않는 범위에서 특정 문구만 다른 단어로 대체하는 경우, 가장 간편하게 자동화할 수 있는 툴은 바로 "누름틀"이다.


누름틀을 삽입하는 방법

청구서 파일을 열고, 본문의 교육명 "파이썬기초"를 지운 후, Ctrl-K-E를 눌러 누름틀을 삽입하자.

교육명인 "파이썬기초"를 지우고,
이 상태에서 Ctrl-K-E를 눌러 필드입력창이 뜨면,
위와 같이 입력하고, "넣기(D)"를 누른다.
언뜻 보면 처음의 상태와 별 차이 없는 것 같지만,

이 상태로 저장하고 문서를 닫은 후, 파이썬으로 해당파일을 열어보자.

필자는 파이참(pycharm)을 애용한다. 파이참이 아니어도 자동화할 수 있지만, 파이참을 사용하면 무척 편하다.

스크린샷 하단에 hwp.GetFieldList() 명령어를 입력했더니 "교육명"이라는 문자열이 출력되었다.
문서 내에 필드, 즉 누름틀이 한 개 있으며, 그 이름이 "교육명"이라는 것이다.

이제 이 "교육명"이라는 누름틀 속성을 통해 그 안에 원하는 문자열을 입력할 수 있는 준비가 됐다.

누름틀에 원하는 문자열을 삽입하는 명령어는,

hwp.PutFieldText([집어넣을 누름틀 이름], [입력하고 싶은 문자열])이다.

이렇게 입력하면,
PutFieldText 메서드로 한/글 문서의 누름틀에 문자열을 입력하는 모습(클릭)


어떤가? 굉장히 간단하게 이번 자동화 튜토리얼의 첫걸음을 내디뎌보았다.
이 작업이 뜻깊은 이유는, 이제 여러분도
hwp.PutFieldText 메서드 대여섯줄 정도면 청구서 한 장을 완성할 수 있기 때문이고,
작성해놓은 코드를 실행하는 것만으로 수십, 수백장이든 상관없이 문서를 만들어낼 수 있게 되었기 때문이다.

수정할 부분을 아래와 같이 모두 누름틀로 변경해보았다.

안내문을 필드명과 동일하게 설정한 상태


참고로 필자처럼 "안내문""필드이름"을 동일하게 사용하면 필드이름을 기억하기 쉽겠지만,
문서 형태가 다소 틀어질 수 있다.

그래서 "안내문" 안에 실제 들어가는 문구,
예를 들면 "이십만일천원"이라든지, "2020년 12월 29일" 같은 문자열을 넣어서
문서의 형태를 최대한 원본과 비슷하게 유지하는 것도 좋은 방법이라고 생각한다.
그렇게 적용한 모양은 아래와 같을 것이다. (안내문만 바꾸었으며, 필드명은 위와 동일한 상태이다.)

안내문을 실제 문구와 유사하게 변경한 상태(필드명은 기존과 동일)

이렇게 누름틀을 모두 입력하고 나면 준비는 끝났다. 
다음 포스팅에서는 교육생과 교육정보가 담긴 엑셀파일에서 각 행의 값들을
해당하는 누름틀에 차례로 삽입하고, 페이지가 완성되면 PDF로 저장하는 방법까지 소개할 예정이다.

이번 포스팅은 여기서 마친다.


참고할 포스팅

 

1. 파이썬-아래아한글 자동화를 위해 먼저 할 일 두 가지!

안녕하세요? 이 메뉴에 업로드되는 포스팅들은 주로 아래아한글을 다루는, 그리고 파이썬은 깊이 알지 못하는 회사원을 대상으로 작성합니다. 아래아한글 기능설명에 대해서는 가급적 다루지

www.martinii.fun

유사한 튜토리얼 영상

 


 

다음 포스팅은...

 

[교육업무자동화2/10] 청구서자동화2(필드에 텍스트 자동입력)

지난 포스팅은... [교육업무자동화1/10] 청구서자동화1(누름틀 다루기) (전략) 우리 ㅇㅇㅇㅇㅇㅇ협회 교육운영팀은 20XX년부터 고용노동부 국가인적자원개발 컨소시엄 사업으로 전환하여 비회원

www.martinii.fun

 

반응형