들어가며
지금까지 한글 파일을 실행하여 텍스트를 입력하는 방법과
이미 작성된 한글 파일을 불러오는 방법을 알아보았습니다.
한글 파일을 새로 열거나
기존 파일을 파이썬으로 만든 코드를 통해 불러오는 이유는
편집하기 위함이 주목적일 것입니다.
편집을 하고나면 저장을 해야
해당 문서가 제 기능을 하게 됩니다.
이번 블로그에서는 한글 문서를 저장하는 방법을 알아보겠습니다.
저장하는 방법
저장하는 방법은 두 가지가 있습니다.
하나는 기존에 지정된 이름으로 바로 저장을 하는 것이고
하나는 새로운 이름으로 만들어 저장하는 방법입니다.
전자는 저장하기이고
후자는 다른 이름으로 저장하기입니다.
이 기능을 하는 함수는
Save() 함수와
SaveAs() 함수입니다.
한글 자동화 공식문서 확인 및 코드 작성하기
한글 자동화 공식문서 HwpAutomation.pdf 파일을 살펴보겠습니다.
1) Save() 함수
Save() 함수는
하나의 인자를 갖고 있고,
True 또는 False를 지정할 수 있습니다.
True를 지정하면 문서가 변경되었을 경우 저장하고
False를 지정하면 변경 여부에 관계없이 문서를 저장합니다.
별도로 인자에 값을 전달하지 않으면, True가 지정됩니다.
먼저 한글 파일 하나를 만들어 저장하고
아래와 같이 간단하게 텍스트를 입력해 놓았습니다.
파이썬으로 텍스트를 입력하고
Save() 함수를 호출해 보겠습니다.
import win32com.client as win32
import os, shutil
def execute_hwp(hwp_visible=True):
try:
hwp = win32.gencache.EnsureDispatch('HWPFrame.HwpObject')
return hwp
except:
cache_dir = win32.gencache.GetGeneratePath()
if os.path.exists(cache_dir):
shutil.rmtree(cache_dir)
hwp = win32.gencache.EnsureDispatch('HWPFrame.HwpObject')
return hwp
finally:
if 'hwp' in locals():
hwp.XHwpWindows.Active_XHwpWindow.Visible = hwp_visible
def input_text(hwp, text):
action = hwp.CreateAction("InsertText")
param = action.CreateSet()
param.SetItem("Text", text)
action.Execute(param)
def load_hwp(hwp, path):
if not os.path.exists(path):
print("파일이 존재하지 않습니다.")
else:
hwp.Open(path, None, None)
if __name__ == "__main__":
hwp = execute_hwp()
load_hwp(hwp, r"C:\Users\karur\Desktop\한글 파일 불러오기 테스트.hwp")
input_text(hwp, "안녕하세요.!")
hwp.Save()
기존의 코드 맨 마지막에
hwp.Save() 코드 한 줄을 추가했습니다.
위 코드를 실행하면 아래와 같이 텍스트가 입력됩니다.
아직 한글을 닫는 코드는 작성하지 않았으므로,
직접 한글 프로그램을 닫고 다시 실행해 보면
입력한 텍스트가 그대로 있는 것을 확인할 수 있습니다.
2) SaveAs() 함수
SaveAs() 함수는 세 개의 인자를 받을 수 있습니다.
첫 번째 인자는 파일의 경로와 이름으로 필수 인자
두 번째 인자는 문서의 형식으로 필수 인자
세 번째 인자는 세부 옵션으로 선택 인자입니다.
두 번째 인자의 값은 문서에서 Open() 함수 찾아 참고하시면 됩니다.
코드를 통해 살펴보겠습니다.
import win32com.client as win32
import os, shutil
def execute_hwp(hwp_visible=True):
try:
hwp = win32.gencache.EnsureDispatch('HWPFrame.HwpObject')
return hwp
except:
cache_dir = win32.gencache.GetGeneratePath()
if os.path.exists(cache_dir):
shutil.rmtree(cache_dir)
hwp = win32.gencache.EnsureDispatch('HWPFrame.HwpObject')
return hwp
finally:
if 'hwp' in locals():
hwp.XHwpWindows.Active_XHwpWindow.Visible = hwp_visible
def input_text(hwp, text):
action = hwp.CreateAction("InsertText")
param = action.CreateSet()
param.SetItem("Text", text)
action.Execute(param)
def load_hwp(hwp, path):
if not os.path.exists(path):
print("파일이 존재하지 않습니다.")
else:
hwp.Open(path, "", "")
if __name__ == "__main__":
hwp = execute_hwp()
load_hwp(hwp, r"C:\Users\karur\Desktop\한글 파일 불러오기 테스트.hwp")
input_text(hwp, "안녕하세요.!")
hwp.SaveAs(r"C:\Users\karur\Desktop\한글 파일 불러오기 테스트-1.hwp", "HWP")
SaveAs() 함수의 두 번째 인자는 HWP를 사용하면 되고,
SaveAs() 함수의 세 번째 인자는 생략하거나 빈 문자열("")을 사용할 수 있습니다.
하지만 빈 문자열("")을 사용하는 것이 더 안정적일 수 있습니다.
이 코드를 실행하면 해당 경로에 파일이 하나 추가로 생성된 것을 확인할 수 있습니다.
마치며
이번 블로그에서는 한글 파일을 저장하는 방법에 대해 알아보았습니다.
다음 블로그에서는 한글 프로그램을 종료하는 방법에 대해 알아보겠습니다.
[ 파이썬 관련 블로그 글 목록 ]
파이썬(Python) 블로그 목록
'PYTHON 한글자동화' 카테고리의 다른 글
[ 한글 자동화 ] 한글 문서에 필드 지정하고, 필드에 값 입력하기(PutFieldText)-첫번째 (1) | 2025.05.11 |
---|---|
[ 한글 자동화 ] 한글(HWP) 문서 및 프로그램 종료(Quit(), Clear(), Run("FileClose"), XHwpDocuments.Close()) (0) | 2025.05.11 |
[ 한글 자동화 ] 한글 파일 불러오기, 특정 한글 파일 실행하기 (0) | 2025.05.10 |
[ 한글 자동화 ] 한글 문서에 텍스트 입력하기 (0) | 2025.05.10 |
[ 한글 자동화 ] 한글 자동화를 위한 준비, 한글 자동화 공식 문서 (1) | 2025.05.10 |