해결된 질문
작성
·
190
1
안녕하세요. 😁😁
과거에 이미지를 글자 위에 겹쳐서 찍는 코드를 파이썬으로 구현하고 싶은데 할 줄 몰라서 질문 했던 학생입니다.
실력이 부족해서 해답을 발견하는데까지 너무 오래 걸렸네요 ㅠㅠ 거두절미하고 질문했던 사람으로서 제 질문에 답을 공유해서 누군지 모르겠지만 혹시라도 누군가에게 도움이 되길 바라는 마음으로 제가 찾은 코드를 공유하고자 합니다.
먼저 제가 과거에 했던 질문내용을 모르시는 분들을 위하여 제가 원했던 기능을 다시 정리합니다. (이미 아시는 분들은 이번 목차 내용 전부 안 읽고 넘어가셔도 무방합니다.)
한/컴 문서에 이미지를 추가한다.
이미지의 속성 중 '글자처럼 취급' 속성을 해제한다.
추가한 이미지를 글자와 겹치도록 위치시킨다.
이미지가 글자와 겹쳐서 위치 될 때 이미지가 문자 위에 존재하도록 설정한다.
import os
import win32com.client as win32
hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject")
hwp.XHwpWindows.Item(0).Visible = True
hwp.RegisterModule("FilePathCheckDLL", "FilePathCheckerModule")
file_path = os.path.join(os.getcwd(), "문서양식/테스트문서.hwp")
hwp.Open(file_path)
img_path = r"추가하길원하는이미지경로.png"
hwp.InsertPicture(img_path, Embedded=True)
hwp.FindCtrl() # 이미지 선택 (커서에서 인접한 개체 선택)
hwp.HAction.GetDefault("ShapeObjDialog", hwp.HParameterSet.HShapeObject.HSet) # 액션 초기화
hwp.HParameterSet.HShapeObject.TextWrap = hwp.TextWrapType("InFrontOfText") # 글 위로 배치 # 혹시라도 글 뒤로 배치를 원하시는 분들은 "BehindText" 으로 변경해서 사용하셔요. ^^
hwp.HParameterSet.HShapeObject.TreatAsChar = 0 # 글자처럼 취급 해제
hwp.HAction.Execute("ShapeObjDialog", hwp.HParameterSet.HShapeObject.HSet) # 실행
위 코드 테스트를 원하시는 분들은 'file_path' 변수의 파일 경로와 'img_path' 의 이미지 파일 경로만 자신의 상황에 맞게 지정하여 테스팅 해보시면 됩니다.
file_path 는 hwp 문서파일의 경로를 지정하세요. img_path 는 hwp 문서에 추가하시길 원하시는 이미지 파일의 경로를 지정하시면 됩니다.
나머지는 전부 다 이미 잘 알고 계시리라 생각합니다.
음... 사실 혼자 알아내는게 너무 힘들었습니다. 물론 어려워서가 아니라. 제 개인의 실력부족 때문에요 ㅎㅎ
그래도 결국 포기하지 않아서 알아내니까 기분은 좋네요. 아무튼 위 코드와 관련하여 추가적인 궁금점이 있으신 분들은 댓글 남겨주시면 제가 능력범위 내에서 도움드릴 수 있는 내용은 도움을 드리고 싶습니다. 물론 능력이 아주 많이 부족하니 도와드리지 못하는 것들이 많을 수 있습니다. ㅠㅠ 미리 사과드립니다.
모쪼록 저와 같은 고민을 하셨던 분들에게 작은 도움이 되었길 바랍니다. 그리고 제가 원하는 기능을 구현하도록 도와주기 위해 여러 차례 답변을 답해주신 신명진 강사님께도 정말로 진심으로 감사하단 말씀 드립니다.
답변 1
-1
스스로의 힘으로 해결하셨다니 너무 대단하시고, 저도 기쁩니다.
막상 답을 찾고 나면 별 것 아니게 느껴질 수도 있지만,
막막하고 힌트도 없는 상태에서 이렇게 집요하고 끈질기게 답을 찾아내신 걸 보면
뭘 해도 크게 성공하시겠다는 마음이 드네요.
진심으로 축하드립니다. 앞날에 늘 건승하실 것으로 믿고,
행복한 하루 되세요ㅎ
제안하여주신 코드는 저도 자주 참고하도록 하겠습니다.
감사합니다^^