반응형
안녕하세요. 특정 디렉토리의 여러 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 이후의 명령어를 실행하셔서 발생하는 오류입니다.
참고하신 블로거 분이 어느 버전을 사용하셨는지는 모르겠지만,
저도 저 코드를 실행했을 때에는 한줄기빛님과 동일한 오류가 발생하네요.
대신 아래 코드로 실행해 보시기 바랍니다.
기존 코드에 비해 다소 복잡해 보이지만
글자서식이나 스타일도 유지되는
괜찮은 방법입니다.
실행화면은 아래와 같습니다.

샘플문서
글상자.hwpx
0.03MB
추가로 궁금한 점이 있으면 댓글 남겨주시기 바랍니다.
방명록 남겨주셔서 감사합니다.
행복한 하루 되세요!
일코 드림
움짤로 빠르게 배우는 파이썬-아래아한글 자동화 레시피 - 인프런 | 강의
파이썬으로 아래아한글을 다루는 짧은 예제코드들을 소개하고, 중간중간의 결과를 GIF로 보여드립니다. 동영상 강의가 아니지만 오히려 빠르게 배울 수 있고, 따라하기도 쉽습니다., - 강의 소개
www.inflearn.com
반응형
'아래아한글 자동화 > python+hwp 중급' 카테고리의 다른 글
[python+hwp] 생각보다 hwp 업무자동화가 어렵다면... (1) | 2023.02.01 |
---|---|
[영상] 아래아한글 표 캡션 일괄수정하는 파이썬 코드 (1) | 2023.01.16 |
[QnA] 문서 자동교정 프로그램 만들기 (20) | 2023.01.13 |
댓글