2025.02.25 - [파이썬 업무 자동화/한글 문서 작업 자동화] - 파이썬 한글 문서 매크로 제작기 (feat. ChatGPT) - 3. 회사명 갖고 오기
파이썬 한글 문서 매크로 제작기 (feat. ChatGPT) - 3. 회사명 갖고 오기
2025.02.23 - [파이썬 업무 자동화/한글 문서 작업 자동화] - 파이썬 한글 문서 매크로 제작기 - 2. 내용 바꾸기 파이썬 한글 문서 매크로 제작기 - 2. 내용 바꾸기2025.02.23 - [파이썬 업무 자동화/한글
sunnysides.tistory.com
이번 글에서는
한글 문서 pdf로 뽑아내기
를 해 보도록 하겠습니다.
뭔가 시작은 어려웠는데 정리하다 보니 왜 이렇게 쉬운 내용을 어려워했지 싶네요. 세상 만사 마음 먹기 나름이라는 옛말은 어디든지 해당되는 것 같네요ㅋㅋㅋ
하.. 다시 문제가 생겼습니다. 자꾸 물어봐도 똑같은 대답 밖에 안 나오네요..
이렇게 '세계적으로(?) 유명하지 않은' + '내가 지금 필요한' 작업은 꼭 에러가 뜨더라구요. 하지만 걱정 마세요. 우리에겐 구글신이 있으니까...ㅋㅋㅋ
야매로 코드 짜깁기를 하던 우리는 도저히 각 함수들이 뭘 의미하는지 알 수 없습니다. 찾아보고 싶지도 않고, 찾았다고 알아먹을 수 있지도 않아요. 그럴 때는 항상 처음 사용한 라이브러리를 '뒤져본다'고 생각하시면 된답니다~
열심히 'win32com' 'hwpframe' 같은 걸 검색해본 결과(막무가내로 검색해서 어떻게 찾았는지 기억도 안 나네요ㅋㅋㅋ) 천재 한컴 개발자분들이 우리가 쓰던 라이브러리를 만들었다는 사실을 알아냈습니다.
https://store.hancom.com/board/devmanualList.do?
글로벌 소프트웨어의 리더, 한글과컴퓨터
store.hancom.com
여기에 우리가 사용할 만한 내용이 다 정리가 되어 있습니다!!!!
하지만 쓸 줄 모르죠?ㅋㅋㅋㅋㅋㅋㅋ
문서를 뒤져서 프린트를 해 줄 것 같은 놈을 찾았습니다.
겨우겨우 Action ID 가 Print이고, Item ID에서 PIT_UT1 Type의 3번이 pdf 파일로 저장인 것을 알았습니다. 찾았죠? 이제 다 끝났다고 보시면 됩니다. 오평파(이썬).
뭔가 사용할 수 있을 줄 알았는데, 너무 어려웡.. 그렇다면!!
답은 있어보이게 물어보기 신공입니다. 휴 역시 해결.
이렇게 챗지피티를 쓸 때도 필요한 요소를 대략적으로라도 찾아서 물어보면 해결의 실마리가 보인답니다...였습니다만...
하..............................에러 문구는 안 뜨고 저장도 잘 되는데 pdf 출력이 안 됩니다..........스트레스 받네요...
우리 친구가 의미 없는 대답만 반복하는 와중에, 답을 겨우 찾았습니다.
ㅋㅋㅋㅋㅋㅋㅋㅋ하.. 기본 설정은 분명 돼 있는데,,
제가 코드를 볼 때 분명 'Microsoft PDF 어쩌구'가 들어간 코드가 있고, SetItem("Device","3")으로 돼 있는 코드가 있었거든요. 그래서 왠~~~~~~~~지 그림 4에 있던 3번이 기본 설정에 있는 "PDF 저장" 얘인가 싶어서 눌렀더니
얘가 인쇄 버튼이 비활성화 되길래 더블클릭했더니 이렇게 뜨더라구요.. 이런 건 처음 봤다....
그렇게 따라했더니 해결!!! 휴.. 매우 기분이 좋아졌습니다.
그렇게 최종 코드는
import win32com.client as win32
hwp = win32.Dispatch("HWPFrame.HwpObject")
hwp.XHwpWindows.Item(0).Visible = True # 한글 창 보이기
file_path = "D:/한글 양식 자동화/양식.hwp"
pdf_path = "D:/한글 양식 자동화/tmp/양식.pdf"
hwp.Open(file_path, "","")
# 🔹 ③ 한글의 메시지 박스 모드 변경 (저장 시 창 뜨지 않도록)
hwp.SetMessageBoxMode(0x1000)
# 🔹 ② 인쇄 설정 값 가져오기
action = hwp.CreateAction("Print")
option = action.CreateSet()
# 🔹 ② PDF 저장을 위한 인쇄 설정
# hwp.HAction.Run("Print") # 인쇄 창 직접 실행
action.GetDefault(option) # 기본 인쇄 설정 불러오기
# 🔹 ③ 'Device'를 PDF로 변경 (3번 설정)
option.SetItem("Device", 3)
# 🔹 ④ PDF 파일명 설정
option.SetItem("FileName", pdf_path)
# 🔹 ⑤ 설정 적용 후 인쇄 실행
action.Execute(option)
# 한글 종료
hwp.Quit()
이렇게 나왔답니다^^
중간에 뜬금 없는 '메시지 박스 모드'가 생겼는데, 얘는 있든 없든 차이가 없던데, 뭔가 우리의 똑똑이 친구가 가르쳐 주기로는 같은 이름 파일이 있어도 자동으로 덮어쓰게 해주는 설정이라네요. 제 기준에서는 없어도 잘 덮어지긴 하던데 혹시나 싶어 놔뒀답니다.
드디어 끝이 보이는 것 같네요. 이제 지금까지 했던 코드를 조합해서 하나의 코드로 합체시키고, 하나의 프로그램으로 만든다면 좀 더 까리한(!) 프로젝트가 될 것 같습니다.ㅋㅋㅋ
'코딩 프로젝트 > 파이썬-한글 매크로 프로그램 제작' 카테고리의 다른 글
파이썬 한글 매크로 프로그램 제작 (feat. ChatGPT) - 6. 실행 파일 변환 (0) | 2025.03.01 |
---|---|
파이썬 한글 매크로 프로그램 제작 (feat. ChatGPT) - 5. 코드 합치기 (0) | 2025.03.01 |
파이썬 한글 매크로 프로그램 제작 (feat. ChatGPT) - 3. 회사명 갖고 오기 (2) | 2025.02.25 |
파이썬 한글 매크로 프로그램 제작 (feat. ChatGPT) - 2. 내용 바꾸기 (0) | 2025.02.23 |
파이썬 한글 매크로 프로그램 제작 (feat. ChatGPT) - 1. 개발 환경 설정 (0) | 2025.02.23 |