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

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

by 일코 2022. 10. 25.
def 그림추출():
    hwp.HAction.GetDefault("ShapeObjSaveAsPicture", hwp.HParameterSet.HShapeObjSaveAsPicture.HSet)
    hwp.HParameterSet.HShapeObjSaveAsPicture.Path = "c:/users/smj02/desktop/취합문서/1.jpg"  # 저장하고자 하는 절대경로
    hwp.HParameterSet.HShapeObjSaveAsPicture.Ext = "JPG"  # 포맷은 대문자로 입력
    hwp.HAction.Execute("ShapeObjSaveAsPicture", hwp.HParameterSet.HShapeObjSaveAsPicture.HSet)

문서에서 선택된 이미지를 저장하는 간단한 네 줄 짜리 함수입니다.

(이미지 선택 방법은 이후 포스팅에서 자세히 알려드리겠습니다.)

실행해보면

잘 되네요.

의도한 대로 폴더 안에 이미지가 잘 저장되는 것을 확인했습니다.

눈썰미가 좋은 분들은 눈치채셨겠지만,

이미지파일이 덮어씌워집니다.

1.jpg 라는 이름으로 동일하게 저장하기 때문입니다.

이 문제는 아래처럼 파일명 인자를 입력받게 해서 해결할 예정입니다.

from pathlib import Path


def 그림추출(경로):  # 경로 = pathlib.Path 인스턴스
    hwp.HAction.GetDefault("ShapeObjSaveAsPicture", hwp.HParameterSet.HShapeObjSaveAsPicture.HSet)
    hwp.HParameterSet.HShapeObjSaveAsPicture.Path = 경로.as_posix()  # Path 인스턴스를 문자열로 변환
    hwp.HParameterSet.HShapeObjSaveAsPicture.Ext = 경로.suffix[1:].upper()  # "JPG"
    hwp.HAction.Execute("ShapeObjSaveAsPicture", hwp.HParameterSet.HShapeObjSaveAsPicture.HSet)
    

저장위치 = Path("c:/users/smj02/desktop/취합문서/취합사진/1.jpg")
그림추출(저장위치)

역시 의도한 대로 잘 작동합니다.

다음 함수로 넘어갑시다.

 

pathlib이라는 내장모듈을 사용해서 경로와 확장자 추출을 간편하게 처리했습니다.

이번 튜토리얼에서는 pathlib의 사용법은 따로 다루지 않겠습니다.
다만, pathlib이 전통적인 os.path를 대체할 만큼 간결하면서도 강력한 모듈입니다.
유명한 파이썬 웹프레임워크인 django에서도 os모듈 대신 pathlib으로 교체했을 정도이니
별도로 pathlib의 사용법을 익혀보시면 폴더를 만들고 지우거나 관리하는 작업시
굉장히 편리하다고 느끼실 겁니다.

 

댓글