파이썬에서 Excute 메서드 실행 시 버그

이 범주에서는 한글 오토메이션에 대한 다른 사용자의 기술 지원을 제공받을 수 있습니다.

  1. 한글 오토메이션의 API 사용/연동은 개발 가이드를 참조하세요.
  2. 일반 문의는 한글과컴퓨터 웹사이트의 고객 지원을 이용하세요.
  3. 개인정보가 포함되지 않도록 유의하세요. 게시글 또는 댓글에 개인정보가 포함된 내용이 있을 경우 게시물이 숨김처리 될 수 있습니다.
        hwp.HAction.GetDefault('FileSaveAsPdf', hwp.HParameterSet.HFileOpenSave.HSet)
        hwp.HParameterSet.HFileOpenSave.filename = output_file
        hwp.HParameterSet.HFileOpenSave.Format = 'PDF'
        hwp.HAction.Execute("FileSaveAsPdf", hwp.HParameterSet.HFileOpenSave.HSet)

이런식으로 코드를 작성했습니다.

마지막 라인인, Excute메서드가 실행되자마자
아래와 같은 에러가 발생합니다.

제가 보기에는 문제가 없는데, 왜 이런 에러가 발생할까요??
다른 프로그램과의 충돌일까요??

에러 메시지: (-2147023170, ‘원격 프로시저를 호출하지 못했습니다.’, None, None)

안녕하세요.

코드 상에는 문제가 없습니다.
아래 가이드대로 진행해보시면 좋을 것 같습니다.

⓵ 오토메이션 재등록
한글설치경로\Hwp.exe /RegServer

⓶ SaveAs 방식 구동
hwp.SaveAs(output_file, “PDF”, “”)

감사합니다.

저도 확인해봤는데, 코드상 문제는 없는걸로 보입니다.

hwp.HAction.GetDefault("FileSaveAsPdf", hwp.HParameterSet.HFileOpenSave.HSet)

hwp.HParameterSet.HFileOpenSave.filename = r"C:\Users\Lemon_Mint\Desktop\표이미지2.pdf" 
hwp.HParameterSet.HFileOpenSave.Format = "PDF" # 포맷을 PDF로 설정
hwp.HParameterSet.HFileOpenSave.Attributes = 16384 # 파일 속성 설정

hwp.HAction.Execute('FileSaveAsPdf', hwp.HParameterSet.HFileOpenSave.HSet)

이게 제가 사용하는 코드인데, output_file쪽에 상대경로를 넣으면 안되고 반드시 절대경로로 넣으셔야하구요.
이게 안먹힌다고 하면, 아마 한글 버젼문제 같습니다.
전 현재 한글 2024 사용중인데 실행 잘 됩니다.

1개의 좋아요

안녕하세요. 두 가지 방법 모두 실패했습니다.

같은 에러가 발생하였습니다.
output_file은 절대경로이고, 실제로 존재하는 파일입니다.
실제로 열리기도 합니다.

SaveAs 방식과 위와 같은 방법 모두 같은 에러가 발생했습니다.
오토메이션도 재등록해봤고요.

또, 관리자권한으로도 실행해보기도, 여러가지 방법을 시도해봤지만
잘 안되네요…

혹시 다른 방법이 있을까요?

답변 감사합니다.

outputfile은 절대경로로 들어갑니다.

아마 한글 버전 문제일까요…?

2018버전을 사용하고 있습니다.
다른 컴퓨터에서도 같은 문제가 발생하고 있습니다.

코드 문제가 아니라면,
한글 프로그램 혹은 버전 문제같다는
생각도 하고 있습니다.

1개의 좋아요

그럼 확실하게 버젼문제가 맞습니다.
user328님께서 주셨던 코드가 저한테선 잘 동작하더라구요.

다른 버젼은 모르겠지만 2024는 잘 된다고 확실히 말씀드릴 수 있습니다.

2개의 좋아요

2018, 2024 두 버전으로 확인을 해봤는데 정상 동작했습니다.

설치된 PDF 드라이버 문제가 없는지 확인하기 위해
직접 2018 한글에서 PDF로 파일을 저장했을 때 정상 저장이 되는지 확인해보시면 좋을 것 같습니다.

1개의 좋아요

안녕하세요.
빠르게 답변 주셔서 감사합니다.

한글 프로그램에서 PDF 파일을 저장했을 때,
문제가 발생하는 것을 확인했습니다.

0kb로 저장되는 문제가 발생합니다.

그런데 Microsoft Word에서는 pdf 저장에 문제가 없습니다.

말씀하시는 PDF 드라이버가 Hancom PDF 인 것 같은데,
다른 드라이버로 바꿔도 같은 문제가 발생하고 있습니다.

1개의 좋아요

답변 주셔서 감사합니다.

확인해보니 한글 프로그램에서 PDF 저장 시 같은 문제가 발생하여,
프로그램 내에 문제로 추정되고 있습니다.

귀한 시간내어 답변 주셔서 감사합니다.

2개의 좋아요

PDF드라이버와 문서의 충돌(?)이 있는 것으로 보입니다.

저도 시험지나 복잡한 서식의 hwp 파일을 PDF 변환할 때
정말 아~주 가끔 한/글 기본제공 PDF 드라이버 사용시에 동일한 오류가 나는 경우가 발생하더라고요. (드라이버 바꾸면 대부분 해결이 되기는 했어요…)

save_as 말고 PrintToPDFEx 액션으로 바꿔서 실행해보기

(인쇄 스크립트매크로 참조)

Hancom PDF 말고, Adobe PDFMicrosoft Print to PDF, ezPDF Builder Supreme 등 다른 드라이버 사용해보기

오류가 안 나는 드라이버를 찾아서 작업하시는 것을 제일 추천드립니다. (근데 다른 드라이버로 시도해보셨다고 써 두셨네요ㅜㅜㅜ)

만약 이미지화 된 PDF로 저장해도 무방하시다면

아래 코드를 참조하셔서 활용하셔도 되겠습니다.

from pyhwpx import Hwp

hwp = Hwp()
hwp.open("./your/file/path.hwp")

hwp.save_pdf_as_image("new_path.pdf")

다른 포맷으로 변환한 후 PDF변환

이게 또 잘 되었던 것도 같은데, 당장 테스트를 해볼 수가 없네요…ㅜ

(하여튼 저는 대부분 ①~②번 방법으로 해결하기는 했거든요…)

보통 오류가 나는 문서는 다른 PC나 다른 버전에서도 PDF변환이 안 되는 듯 합니다. 혹시 문서를 공유해주실 수 있다면, 적절한 해결방법을 찾아서 코드를 공유해드리고 싶어요. 제 메일주소는 martinii.fun@지메일입니다.

행복한 하루 되세요!!

1개의 좋아요

커맨드창(관리자모드)에서 한컴PDF 드라이버를 수동 설치로 확인 부탁드려요.

한컴오피스 설치경로\HncUtils\HancomPDF\SetupDriver.exe -u (삭제)
한컴오피스 설치경로\HncUtils\HancomPDF\SetupDriver.exe -i (설치)

혹시 프린터 스풀러에 인쇄 작업이 있는 경우에 삭제가 안될 수 있으니 이 경우에는 리부팅 후에 해보세요.

감사합니다.

1개의 좋아요