현상, 에러 메시지
Error 발생 배경
한글 변경 추적 기록 기능이 활성화 된 한글 파일의 경우 PDF 저장을 하면 메시지 박스가 뜨면서 저장을 선택해야 PDF 저장이 성공적으로 완료된다.

Python을 Automation을 이용한 한글 PDF 저장 시에 메시지 박스가 뜨면서 저장을 선택하지 못하고 작업이 홀드되어 자동화 작업의 진행이 실패한 상황을 만났다.
Error 메시지
변경 추적 기능이 사용된 문서입니다.
변경 추적 정보를 유지하려면 한글문서(.hwp, .hwpx) 파일 형식으로 저장하세요.
선택한 파일 형식으로 저장할까요?
해결 시도
시도 1 : TrackChanges 옵션 조정(실패)
쉽게 시도해보려고 GPT한테 해당 이슈를 질문했을 때 해결 방법으로 제시한 모든 방법들이 실패했다.
망할 할루시네이션.. 이래서 언어 모델은 쉽게 믿으면 안되고 모든걸 검증해야한다.
# 실패, 해당 부분에서 에러남
hwp.Run("TrackChanges", False)
# 실패, 해당 부분에서 에러남
hwp.TrackChanges = False
# 실패, 변경추적 상태(기록중, 기록안함)만 조정함, 변경 추적 기록은 존재함 > 동일현상
hwp.IsTrackChange = False
시도 2 : pyautogui를 통해 메시지의 “저장” 버튼 누르게 하기(실패)
현재 작업중인 창과, 변경 추적 기능으로 인해 메시지가 뜬 메시지 박스 창이 다르기 때문에 pyautogui가 작업하는 창과 포커스가 맞지않아 실패했다.
이 시도가 성공했더라도 적용에는 문제가 있는게, 내가 적용해야하는 환경에서는 한글 프로그램이 창으로 떠서 작업되지 않게 백그라운드로 실행시키는데 메시지 박스 처리만 활성화 기준으로 작업하는 것이 일관성이 맞지 않고,
변환을 시도하는 서버 또한 서버 관리자가 작업하는 순간이 있을 수 있어 포커스 창 전환을 시도하더라도 전환된 창이 언제나 내가 필요한 메시지 창이라는 보장이 없다.
좌표나 이미지 검색 방식 기반의 버튼 위치 검색 또한 사정은 마찬가지이다.
서버 관리자가 작업중인경우 메시지 박스가 작업중인 다른 프로그램에 의해 화면 뒤로 숨어들어가면 해결할 수 없다.
시도3 : 메시지 박스 비활성화 임시 처리(성공)
hwp.SetMessageBoxMode 를 이용해 메시지 박스 자체를 저장을 진행하는 순간에만 비활성화 한다.
이렇게 하면 따로 저장 버튼을 클릭하지 않고도 PDF 변환되어 저장까지 성공적으로 되는 것을 확인할 수 있었다.
def convert_to_pdf(self, saveFile):
hwp.SetMessageBoxMode(0x10000)
self.hwp.HAction.GetDefault('FileSaveAsPdf', self.hwp.HParameterSet.HFileOpenSave.HSet)
self.hwp.HParameterSet.HFileOpenSave.filename = saveFile
self.hwp.HParameterSet.HFileOpenSave.Format = "PDF"
self.hwp.HAction.Execute("FileSaveAsPdf", self.hwp.HParameterSet.HFileOpenSave.HSet)
hwp.SetMessageBoxMode(0xf0000)