본문 바로가기
아래아한글 자동화/python+hwp 중급

[0/8] 문서 이미지 일괄저장시 파일명에 제목 넣기(인트로)

by 일코 2022. 10. 24.

개요

대체로 주무부서에서는 소속팀이나 기관에 뿌렸던 문서를 취합 후

가공, 병합하여 보고서로 만드는 일이 많습니다.

 

이번 튜토리얼에서는 취합한 hwp 문서들의 이미지를 일괄로 추출하여 저장하되

이미지명에 해당 문단의 제목(예: "□ 제목"), 파일명(예: 부서이름), 페이지를 넣고,

제목 이름의 폴더들을 생성하여 그 안에 이미지를 저장하는 일련의 과정을 진행해보겠습니다.

 

예를 들자면 이런 식입니다.

아래와 같은 문서서식이 있습니다.

세 개의 팀(알파, 베타, 감마)으로부터

아래와 같은 문서를 취합하였습니다.

문서에는 각각 "나무사진", "꽃사진", "풀사진" 이라는 제목 아래에

1x2 크기의 표에 이미지가 각각 두 장씩 들어 있습니다.

알파팀.hwp
베타팀.hwp
감마팀.hwp

위와 같은 문서에 삽입된 이미지를 아래와 같이 저장하고자 합니다.

우선 "취합사진"이라는 하위폴더 안에 각각의 제목에 해당하는 폴더를 만들고

각 폴더에는 팀별로 취합한 이미지들이 저장됩니다.

이 때 이미지 이름은 아래와 같이 "{팀명}_{문단제목}#{번호}.jpg" 식으로 저장되는 식입니다.

저장이 완료된 모습

예제를 적절히 일반화하고 코드에 치중하려다 보니 작명센스나 서식 모양새가 많이 떨어집니다.
부디 여러분의 상상력을 총동원해서, 실무에 쓰이는 유사한 문서 서식들을 떠올려 주시기 바랍니다.

 

미리 최종 실행화면을 한 번 보여드리겠습니다.

 

튜토리얼을 시작하며

튜토리얼 시리즈를 시작할 때마다 항상 드리는 말씀이지만,

전체 코드는 다소 복잡해 보일 것입니다.

하지만 기능 하나하나를 따져보면 굉장히 단순하기도 하고,

이런 여러 개의 기능들을 조합해서 일련의 프로그램을 짜는 것은

생각보다 간단한 일입니다.

 

먼저 전체적으로 어떤 함수들을 정의해야 할지를 고민해본 후

하나씩 구현해 보는 방식으로 튜토리얼을 진행할 예정입니다.

부디 이 튜토리얼이 언젠가 여러분의 업무에 큰 도움이 되길 바랍니다.

<실습파일 - hwp 문서>

취합문서.zip
1.73MB

 

<전체 목차>

[1/?] 한글프로그램 실행/종료 및 문서 열고 닫는 함수 (tistory.com)

 

[1/?] 한글프로그램 실행/종료 및 문서 열고 닫는 함수

import win32com.client as win32 def 한글프로그램_실행(visible=True): hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject") # 한/글 프로그램 실행 hwp.XHwpWindows.Item(0).Visible = visible # 기본..

martinii.fun

[2/?] 선택한 그림을 파일로 저장하기 (tistory.com)

 

[2/?] 선택한 그림을 파일로 저장하기

def 그림추출(): hwp.HAction.GetDefault("ShapeObjSaveAsPicture", hwp.HParameterSet.HShapeObjSaveAsPicture.HSet) hwp.HParameterSet.HShapeObjSaveAsPicture.Path = "c:/users/smj02/desktop/취합문서/1.jpg"..

martinii.fun

[3/?] 이미지를 선택하는 방법 (tistory.com)

 

[3/?] 이미지를 선택하는 방법

이전 포스팅에서는 이미지를 추출하는 함수를 실행하려면 우선 해당 이미지를 마우스로 선택해야 했습니다. 이 과정을 파이썬 코드로 대체해보겠습니다. 개체 선택 과정은 어찌 보면 간단합니

martinii.fun

[4/?] 캐럿을 개체 앞으로 이동하는 방법 (tistory.com)

 

[4/?] 캐럿을 개체 앞으로 이동하는 방법

이전 포스팅에서 hwp.FindCtrl()을 실행하면 캐럿과 인접한 개체(이미지)가 선택되는 것을 보여드렸습니다. 이 시점부터는 "개체"라는 용어 대신 "컨트롤(Ctrl)"이라는 용어를 사용하겠습니다. 한/글

martinii.fun

[5/?] 문서에서 제목 추출하기 (tistory.com)

 

[5/?] 문서에서 제목 추출하기

이전 포스팅까지는 이미지를 저장하는 프로세스를 구현해보았습니다. 이번 포스팅부터는 문단제목을 추출하는 작업을 해보겠습니다. 기본적으로 한/글 프로그램은 찾기/찾아바꾸기 기능이 잘

martinii.fun

[6/?] 제목리스트로 하위폴더 만들기 (tistory.com)

 

[6/?] 제목리스트로 하위폴더 만들기

이번 포스팅은 짧게 설명드리고 마치겠습니다. from pathlib import Path def 제목폴더_만들기(title_list): for title in title_list: Path.mkdir(취합폴더/"취합사진"/title, parents=True, exist_ok=True) 취합..

martinii.fun

[7/?] 특정 이름으로 이미지 저장하기 (tistory.com)

 

[7/?] 특정 이름으로 이미지 저장하기

def ctrl로_이동하기(ctrl): loc_set = ctrl.GetAnchorPos(0) hwp.SetPosBySet(loc_set) def 이미지저장(제목함수): ctrl = hwp.HeadCtrl # 첫 번째 컨트롤부터 탐색 이미지번호 = 1 이전제목 = "" while ctrl !=..

martinii.fun

[8/?] 여러 한/글 문서에서 이미지 추출(메인함수) (tistory.com)

 

[8/?] 여러 한/글 문서에서 이미지 추출(메인함수)

메인함수 if __name__ == '__main__': hwp = 한글프로그램_실행() 취합폴더 = Path(r"C:\Users\smj02\Desktop\취합문서") 한글문서리스트 = 취합폴더.glob("*.hwp") for 한글문서 in 한글문서리스트: 문서열기(한..

martinii.fun

 

댓글