한글기안기 그림객체에서 이미지 변경에 대한 질문입니다.

안녕하세요
InsertPicture 를 통해 한글문서에 이미지를 하나 넣어준 후
나중에 해당 문서을 열어 그 이미지 객체를 찾아 웹URL 방식으로 다른 이미지 주소를 넣어 변경할 수 있는 방법이 있는지 질문드립니다.

그리고 누름틀 처럼 이름을 지정해서 이미지객체도 찾을 수 있는지 아니면 다른 방법으로 찾을 수 있는지 궁금합니다.

안녕하세요.

이미지객체는 필드속성이 없으므로, MoveToField 등으로 찾을 수 없습니다.

다만, 필드안에 이미지를 삽입하는 것은 가능하므로, [누름틀시작][이미지][누름틀끝]처럼 누름틀 사이에 이미지를 삽입하면 누름틀을 찾아가서 이미지를 찾는 것은 어렵지 않아 보입니다.

그리고, MoveToField(fieldname, true, true, true) 호출시 그림개체가 선택되고, 이후 Delete 후 다시 그림개체를 삽입하는 방식으로 동작이 가능할 것 같습니다.

1개의 좋아요

그럼 MoveToField(fieldname, true, true, true) 호출시 그림개체가 선택되었을때 그 그림객체의 가로 세로 크기값이나 위치등의 값을 알아낼 수 있나요?
그리고 InsertPicture 실행시 콜백함수에서 그림객체의 속성을 변경하는건 가능한가요?
예를 들면 글자처럼취급 속성을 빼고 본문과의배치 속성값, 위치값 등등…

다음의 코드를 통해서 image를 선택한 후, ParameterSet을 통해 값을 얻을 수 있습니다.

HwpCtrl.Run("SelectCtrlFront");    // 정방향으로 컨트롤을 탐색해 선택. 여기서는 그림선택

var dact = HwpCtrl.CreateAction("ShapeObjDialog");
var dset = dact.CreateSet();
dact.GetDefault(dset);
dact.Execute(dset);

// dset은 그림컨트롤 전체 속성
var imageAttr = dset.Item("ShapeDrawImageAttr");  // imageAttr는 그림컨트롤 중 그림탭에 해당되는 정보를 가짐
var origin_x = imageAttr.Item("OriginalSizeX");
var origin_y = imageAttr.Item("OriginalSizeY");   

dset에서는 그림, 표등의 컨트롤에서 공통속성 정보가 담겨 있습니다. (크기, 글자처럼 취급, 배치정보)
imageAttr에서는 그림의 오리지날 크기, 효과, 밝기, 그림 여백 등의 정보가 담겨있습니다.

parametset의 자세한 정보는개발 가이드 | 한컴디벨로퍼 의 parameterset Table.pdf 를 참고하시기 바랍니다.