반응형
안녕하세요. 특정 디렉토리의 여러 hwp 파일 안에 있는 텍스트 상자의 텍스트를 Ctrl + A로 전체복사해서 골라 붙이기 한 후 저장하는 행위를 일괄적으로 수행하는 프로그램을 짜고 있는데(https://hyyoka-ling-nlp.tistory.com/7 위 게시글을 참고했습니다.)
계속
Error opening (-2147417851, '서버에서 예외 오류가 발생했습니다.', None, None) 혹은
Error opening (-2147023170, '원격 프로시저를 호출하지 못했습니다.', None, None) 혹은
Error opening (-2147023174, 'RPC 서버를 사용할 수 없습니다.', None, None)
과 같은 오류가 아무리 구글링해서 나오는 해결책을 써봐도 해결이 되지 않아서 무엇이 원인이고 어떻게 해결해야할 지 혹시 일코님께 자문을 구할 수 있을지 해서 이렇게 방명록에 글을 남기게 되었습니다.
개선해서 수행한 코드는 아래와 같습니다.
import os
import win32com.client as win32
import time
pathlist = ["C:/Users/natio/anaconda3/Scripts/seoul/basic"]
res = []
for path in pathlist:
for root, dirs, files in os.walk(path):
rootpath = os.path.join(os.path.abspath(path), root)
for file in files:
filepath = os.path.join(rootpath, file)
if filepath.endswith('.hwp'):
res.append(filepath)
hwp = win32.gencache.EnsureDispatch("HWPFrame.HwpObject")
for path in res:
if not filepath.endswith('.hwp'):
continue
try:
hwp.Open(path, "HWP", "forceopen:true")
hwp.Run("SelectAll")
hwp.Run("Copy")
hwp.Run("Erase")
hwp.Run("PasteSpecial")
hwp.Run("Cancel")
hwp.Save()
hwp.Quit()
except Exception as e:
if e.args[0] == -2147023174:
print(f"RPC server not available for {path}")
오류의 원인
골라붙여넣기의 "text" 옵션을 선택하지 않은 채로
팝업이 열려 있는 상태에서 Cancel 이후의 명령어를 실행하셔서 발생하는 오류입니다.
참고하신 블로거 분이 어느 버전을 사용하셨는지는 모르겠지만,
저도 저 코드를 실행했을 때에는 한줄기빛님과 동일한 오류가 발생하네요.
대신 아래 코드로 실행해 보시기 바랍니다.
기존 코드에 비해 다소 복잡해 보이지만
글자서식이나 스타일도 유지되는
괜찮은 방법입니다.
import win32com.client as win32
hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject")
hwp.XHwpWindows.Item(0).Visible = True
hwp.RegisterModule("FilePathCheckDLL", "FilePathCheckerModule")
hwp.Open(r"C:\Users\smj02\Desktop\글상자.hwpx")
ctrl = hwp.HeadCtrl
while ctrl:
if ctrl.UserDesc == "사각형":
hwp.SetPosBySet(ctrl.GetAnchorPos(0))
hwp.FindCtrl()
hwp.Run("ShapeObjTextBoxEdit")
hwp.Run("SelectAll")
hwp.Run("Cut")
hwp.DeleteCtrl(ctrl)
hwp.Run("Paste")
ctrl = ctrl.Next
hwp.Save()
hwp.Quit()
실행화면은 아래와 같습니다.
샘플문서
추가로 궁금한 점이 있으면 댓글 남겨주시기 바랍니다.
방명록 남겨주셔서 감사합니다.
행복한 하루 되세요!
일코 드림
반응형
'아래아한글 자동화 > python+hwp 중급' 카테고리의 다른 글
[python+hwp] 생각보다 hwp 업무자동화가 어렵다면... (1) | 2023.02.01 |
---|---|
[영상] 아래아한글 표 캡션 일괄수정하는 파이썬 코드 (1) | 2023.01.16 |
[QnA] 문서 자동교정 프로그램 만들기 (20) | 2023.01.13 |
댓글