본문 바로가기
아래아한글 자동화/pyhwpx 사용법

문서를 불러와서 저장하거나 다른이름으로 저장하는 방법

by 일코 2023. 11. 30.

업무자동화를 하면서 빈 문서에서부터 편집을 하시는 분은 많지 않을 거라고 생각해요.
보통은 특정 포맷의 템플릿 파일을 만들어 두고, 단순 반복 작업에 자동화를 활용하죠.
대표적으로 문서의 특정 폼을 필드와 누름틀로 만들어 두고,
엑셀 또는 다른 한/글 문서들의 데이터를 가져와서 빈 칸을 채우는 식의 작업이 대부분일 것 같아요.
(필드와 누름틀에 대한 사용법도 조만간 해드릴 거예요.)

이번 포스팅에서는 문서를 불러와서,
편집 후 저장하거나,
다른 이름으로 저장하는 방법을 알아볼게요.

우선 문서를 불러오는 명령어는 open,

문서를 저장하는 명령어는 save,

다른이름으로 저장하는 메서드는 save_as 예요.

팁 : open이나 save_as에 상대경로를 입력할 수 있어요.

 

hwpx.open 메서드의 arg 파라미터

가끔 대량의 문서를 불러와서 일괄편집하고 저장하는 작업을 해 보면,
패스워드가 있는 문서, 상위버전의 문서, 혹은 이력이 저장되는 문서.. 등
이런저런 이유로 팝업이 뜨면서 프로세스가 정지되는 경우가 있거든요.
그래서 pyhwpx도 한/글 오토메이션 API의 모든 파라미터를 지원하고 있어요.
예를 들어 아래와 같이 파일을 불러오면, 상위버전이거나, 읽기전용일 때에도 팝업이 뜨지 않고,
패스워드가 있는 문서는 팝업을 띄우는 대신 불러오기 자체를 실패하게 해요.

hwpx.open("sample.hwpx", arg="suspendpassword:false;forceopen:true;versionwarning:false")

 

hwpx.save 메서드의 save_if_dirty 파라미터

save 메서드는 (습관적으로 Alt-S를 누르는 이들을 위해?)
문서에 변경사항이 없으면, 저장하기를 실행해도 실제로는 저장이 되지 않는다고 해요.
문서에 변경이 있는 경우에만 저장 프로세스를 실행하는데,
만약 save_if_dirty=False로 지정하면,
문서의 변경사항이 없더라도 무조건 저장 프로세스가 실행돼요.

hwpx.save(save_if_dirty=False)

 

hwpx.save_as 메서드의 arg 파라미터

hwpx.open과 마찬가지로 save_as에도 arg 파라미터가 있어요.
개인적으로는, 아래 목록 중 유용하게 자주 쓰는 옵션은 export 정도네요.

<hwpx.save_as의 arg 파라미터 옵션>

"lock:true" - 저장한 후 해당 파일을 계속 오픈한 상태로 lock을 걸지 여부
"backup:false" - 백업 파일 생성 여부
"compress:true" - 압축 여부
"fullsave:false" - 스토리지 파일을 완전히 새로 생성하여 저장
"prvimage:2" - 미리보기 이미지 (0=off, 1=BMP, 2=GIF)
"prvtext:1" - 미리보기 텍스트 (0=off, 1=on)
"autosave:false" - 자동저장 파일로 저장할 지 여부 (TRUE: 자동저장, FALSE: 지정 파일로 저장)
"export" - 다른 이름으로 저장하지만 열린 문서는 바꾸지 않는다.(lock:false와 함께 설정되어 있을 시 동작)

여러 개를 한꺼번에 할 경우에는 세미콜론으로 구분하여 연속적으로 사용할 수 있다.
예) "lock:TRUE;backup:FALSE;prvtext:1"  # (불리언 대소문자 구분 없음)

 

기본 메서드를 몇 개만 더 훑어보고
간단한 실무예제를 하나 소개해드릴게요.

분명 여러분의 업무에도 도움이 될 거예요!^^

댓글