인프런 커뮤니티 질문&답변

외로운코딩독학님의 프로필 이미지
외로운코딩독학

작성한 질문수

직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피

글자 입력하기

글자 위에 사진이미지를 겹치고 싶은데 ㅠ 코드로는 어떻게 해야 하나요 ??

해결된 질문

작성

·

345

1

글자가 적혀있는 곧 위에 글자와 겹쳐서 이미지를 추가하고 싶어요. 예를들자면 도장 찍는것처럼 생각하시면 이해하시기 쉬우실것 같네요.

 

제가 스스로 찾는 능력을 키우고 싶은데 ㅠㅠ 능력부족이네요.

어떻게 해야 제가 1. '원하는 위치에 정확히' 2. 원하는 이미지를 글자와 겹치도록 위치시킬 수 있을까요?

 

코드를 사용하지 않고 실제 hwp 프로그램을 사용할 땐 이미지 추가 후 [ 그림 - 배치 - 글자처럼 취급 체크해제 - 글 뒤로 옵션설정 ] 이런 식으로 하면 되는데 코드로 구현하고 싶습니다. ㅠㅠ

 

선생님 답변을 알려주세요.

!!! 아 그리고 문제 해결을 시도해보는 과정에서 매크로 녹화 기능도 사용해봤지만... 매크로는 특히 이미지 관련해서는 잘 작동을 하질 않더군요 ㅠㅠ

이럴때 막막해요 . 어떻게 이런 문제를 스스로 해결할 수 있을까요 HwpAutomation 문서를 봐도... ㅠㅠ 답답 합니다 ㅠㅠ

 

 

답변 2

1

일코님의 프로필 이미지
일코
지식공유자

[!!! 아 그리고 문제 해결을 시도해보는 과정에서 매크로 녹화 기능도 사용해봤지만... 매크로는 특히 이미지 관련해서는 잘 작동을 하질 않더군요 ㅠㅠ 이럴때 막막해요 . 어떻게 이런 문제를 스스로 해결할 수 있을까요 HwpAutomation 문서를 봐도... ㅠㅠ 답답 합니다 ㅠㅠ]

말씀해주신 부분 정말 깊이 공감이 돼요^^;
우선 한/글 오토메이션 매뉴얼이 생각보다 상세하지 않아요.
특히 생소한 오류를 만나면 정말 해결을 포기하게 되는데요ㅜ
요즘은 한컴 개발자포럼에 질문 남기면 몇 시간 내에 한/글 개발자 분들이 답변을 달아주고 계세요.
그리고 이런 업무자동화 케이스들은 알고리즘 역량이나 창의력 같은 내공을 떠나서
"올바른 API 사용법"을 알아야 하는데, 그게 고민으로 풀리는 문제들은 아닌 것 같아요.


그냥 한컴 개발자포럼에 가차없이 질문 남겨주세요ㅋㅋㅋ
주소는, https://forum.developer.hancom.com/ 이거든요.
저도 아는 문제라면 가서 적극적으로 답변 달아드릴게요ㅋ

그리고 제 블로그 https://martinii.fun/ 에도,
아직 강의로 옮기지 못한 여러 질문과 답변이 있는데,
거기도 참고하시면 종종 도움이 될 것 같아요.
(블로그 우측 상단에 검색버튼이 있거든요. 키워드 넣고 찾아보세요ㅎ)
참고하시길 바랄게요ㅋ

문제를 스스로 해결하실 수 있게끔 이끌어드리고 싶은데 제 역량 부족이 커요ㅜㅜㅜㅜ
깊이 반성합니다ㅜ

선생님 즐거운 추석명절 잘 보내고 계시죠

제가 해결책을 알아내진 못했지만 힌트?가 될만한 단서는 찾은것 같습니다.

 

우선 알려주신 [ 한컴 개발자포럼] 에서 '글 뒤로' 라고 검색해보니 몇가지 도움이 될만한 코드들을 발견했습니다. 그런데 안타깝게도 파이썬 코드가 아니라서 ㅠㅠ 저는 아예 수정할 엄두조차 않나더라구요 ..

 

// 고치기 - 위치:종이 (글자처럼 취급x)         private void None_ChangeLiketext()         {             Debug.WriteLine("함수 : None_ChangeLiketext - 시작");              // 위치 종이             var act = hwp.CreateAction("TablePropertyDialog");             var set = act.CreateSet();             act.GetDefault(set);             set.SetItem("HorzRelTo", hwp.HorzRel("Paper"));     // 가로 위치 : 종이             set.SetItem("VertRelTo", hwp.HorzRel("Paper"));     // 세로 위치 : 종이             set.SetItem("TreatAsChar", 0);          // 글자취급 x             set.SetItem("ShapeType", 6);             set.SetItem("OutsideMarginTop", 0);             // 바깥여백 : 0             set.SetItem("OutsideMarginBottom", 0);      // 바깥여백 : 0             set.SetItem("OutsideMarginRight", 0);           // 바깥여백 : 0             set.SetItem("OutsideMarginLeft", 0);            // 바깥여백 : 0             act.Execute(set);             Debug.WriteLine("함수 : None_ChangeLiketext - 완료");         }

위의 코드 원문게시글 링크주소 참조

 

위와 같이 처리한다고 하는데.. ㅠㅠ 사실 저걸 어떻게 좀 손을 보면 될듯 하기도 하고 ㅠㅠ 아 답답합니다. ㅠㅠ

 

어떻게 해야 도장 이미지를 이름 글씨 위에 정확히 찍을 수 있을까요 ㅠㅠ 이미지가 위에 보이고 글자가 이미지 뒤에 겹쳐서 위치해야 하는데요ㅠㅠ

 

1

일코님의 프로필 이미지
일코
지식공유자

tv쉽알남님 안녕하세요?^^

 

몇 년 전에 다른 분께서

메일로 비슷한 문의를 주셔서 같이 해결한 적이 있어요.

당시에는 이미지 삽입위치가 항상 고정되어 있었거든요.

  1. 그래서 미리 글자 뒤로 깔리는 1x1의 표를 만들어두고 테두리를 투명하게 해 뒀어요.

  2. 그 셀에 필드를 지정해서 접근하기 쉽게 해 놓은 다음

  3. MoveToField로 찾아가서 InsertPicture를 바로 실행했어요.

간단히 시연화면을 보여드리면 이런 식이에요.

image

사용한 코드는 아래에 남겨둘게요.

# (미리 만들어둔) image라는 
# 1x1 표 안의 필드로 이동
hwp.MoveToField("image")

# 셀에 딱 맞게 이미지 삽입
hwp.InsertPicture(
    r"C:\Users\Administrator\Desktop\profile.jpg", sizeoption=2)

 

이 방법이 쉽알남님의 작업에 도움이 되면 좋겠어요.

만약 저런 조건으로 만들 수 없는 경우라면

조금만 더 상세히 작업설명 남겨주세요^^

저도 고민해보고 다시 답변 남길게요ㅎ

 

편안한 연휴 보내세요ㅎㅎㅎ

하루만에 곧바로 답장을 주실거라고는 생각하지도 못했습니다.

감동했습니다. 답변을 통해 문제해결 여부를 불문하고 먼저 감사합니다.

알려주신 여러가지 다양한 방법을 통해 저도 한 번 해결시도 해보고 답을 얻게 된다면 돌아와서 답변을 남겨놓겠습니다.

먼저 표를 생성해서 해결하는 방법을 시도해봐야겠어요. ^^ 감사합니다 ^^
우리 선생님도 연휴 즐겁게 잘 보내시길 바랍니다 ^^

외로운코딩독학님의 프로필 이미지
외로운코딩독학

작성한 질문수

질문하기