해결된 질문
작성
·
124
1
문서 두개를 띄워서 작업을 하려고 하는데요.
먼저 한글시작을 하구
hwp = 한글시작(True)
def 한글시작(TF):
hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject")
hwp.XHwpWindows.Item(0).Visible = TF
hwp.RegisterModule("FilePathCheckDLL", "FilePathCheckerModule")
return hwp
그다음 아래와같이 코드를 작성했는데요.
hwp = 한글시작(True)
doc_2 = hwp.XHwpDocuments.Add(False) # 새로운 hwp열고 할당 (False=새로운창 / True = 기존hwp의 탭으로)
doc_2.SetActive_XHwpDocument() # 두 번째 문서 활성화
hwp.HAction.GetDefault("PageSetup", hwp.HParameterSet.HSecDef.HSet)
hwp.HParameterSet.HSecDef.PageDef.Landscape = 1
hwp.HParameterSet.HSecDef.HSet.SetItem("ApplyClass", 24)
hwp.HParameterSet.HSecDef.HSet.SetItem("ApplyTo", 3)
hwp.HAction.Execute("PageSetup", hwp.HParameterSet.HSecDef.HSet)
XHwpDocumnets.Add 를 통해서 새로운 hwp를 열었고, 활성화도 했습니다.
그이후에 한글을 직접 작동하여, 페이지를 가로로 돌리는것(편집용지->가로)을 매크로 녹화했는데요
아래 부분을 입력하고 실행했을 때,
hwp.HAction.GetDefault("PageSetup", hwp.HParameterSet.HSecDef.HSet)
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\SAMSUN~1\\AppData\\Local\\Temp\\gen_py\\3.12\\7D2B6F3C-1D95-4E0C-BF5A-5EE564186FBCx0x1x0\\HSecDef.py.18740.temp'
이런 오류 메시지가 터미널에 뜨게됩니다.
반면에,
hwp.HAction.Run("MoveParaEnd")등을 실행했을 떄는 모두 정상적으로 작동합니다.
왜 한글매크로를 녹화한것이 제대로 작동하지 않는걸까요?
잘 알려주셔서 정말 감사합니다
답변 1
1
병현님 안녕하세요?
코드에는 문제가 없어 보입니다.
(제 PC에서도 아래와 같이 잘 실행됩니다.)
(강의에서 설명드렸듯 pythonwin.exe를 통해서 MakePy를 실행하시는 방법도 있지만..)
조금 번거로우시더라도
아래와 같이 실행을 해보시겠어요?
우선 pyhwpx
모듈을 설치합니다.
(venv) C:\Users\SAMSUN~1\> pip install pyhwpx
아래 코드를 대신 실행해봅니다. (처음 두 줄만 다릅니다.)
from pyhwpx import Hwp
hwp = Hwp(visible=True)
doc_2 = hwp.XHwpDocuments.Add(False) # 새로운 hwp열고 할당 (False=새로운창 / True = 기존hwp의 탭으로)
doc_2.SetActive_XHwpDocument() # 두 번째 문서 활성화
hwp.HAction.GetDefault("PageSetup", hwp.HParameterSet.HSecDef.HSet)
hwp.HParameterSet.HSecDef.PageDef.Landscape = 1
hwp.HParameterSet.HSecDef.HSet.SetItem("ApplyClass", 24)
hwp.HParameterSet.HSecDef.HSet.SetItem("ApplyTo", 3)
hwp.HAction.Execute("PageSetup", hwp.HParameterSet.HSecDef.HSet)
(아마 잘 실행되겠지만..)
pyhwpx를 통해 실행해도 동일한 오류가 발생한다면
댓글을 달아주세요. 해결방법을 알려드리겠습니다.
감사합니다.
행복한 하루 되세요^^