웹한글기안기를 사용하면서 이미지 삽입 관련 로직을 구현 중에 있습니다.
웹한글기안기를 open하고 insertPicture로 이미지 삽입하여 이미지가 삽입된 페이지를 getTextFile 을 하고자 하는 과정입니다. 결론부터 말씀드리자면 이미지가 삽입이 되기는 하는데, 하얀색 이미지로 삽입이 됩니다.
자바스크립트에서 구현을 하고 있습니다만
insertPicture 한 이후에 getTextFile 을 하도록 구현하였습니다.
getTextFile 을 안하거나 getTextFile 을 호출하기 전에 setTimeout 으로 1초 걸어두면 정상적으로 이미지는 삽입이 잘 되어 화면에 표기가 됩니다.
그러나 setTimeout 을 안하거나 getTextFile 을 insertPicture 다음에 호출을 하게되면 빈화면(하얀이미지)으로 이미지가 삽입이 되는데 원인과 해결할 수 있는 방안 관련하여 답변 전달 부탁드립니다.
bart
10월 4, 2023, 9:28오전
2
안녕하세요.
InsertPicture API 는 비동기 동작을 하기 때문에
이후 동작을 진행 하려면 callback 함수를 사용해야 합니다.
HwpCtrl.InsertPicture(baseurl + "img/logo.png", true, 1, false, false, 0, 80, 60, function (ctrl) {
//InsertPicture 이후 동작
var data;
HwpCtrl.GetTextFile("HWP", "", function(res) {
data = res;
HwpCtrl.Clear();
HwpCtrl.SetTextFile(data, "HWP");
});
});
Syntax # HwpCtrl.InsertPicture(path, embeded, sizeoption, reverse, watermark, effect, width, height, callback) Description # 현재 캐럿의 위치에 그림을 삽입합니다.
Parameters # path: 이미지 URL
embeded: 이미지 파일을 문서에 포함할지 여부(true/false)
기존 API 사용자와 호환을 위해서 존재하는 Parameter로...
말씀해주신대로 insertPicture 이후 콜백받아서 getTextFile 을 실행하도록 하였는데
문제가 발생되어 문의드렸던 것으로 더 디테일한 답변 전달부탁드리겠습니다.
bart
10월 10, 2023, 2:55오전
4
안녕하세요.
위 샘플코드로 동작시에도 문제가 발생할까요?
사용하고계신 코드를 첨부해주시면 좀 더 자세한 답변이 가능할것 같습니다.
한글api 관련된 스크립트 소스를 wordObj 객체에 따로 정리해두어 다음과 같이 호출하여 사용하도록 구현을 했으니 참고바랍니다.
_this.wordObj.word(“insertPicture”,“apb1_sign”, res.data, 1, false, false, 0, 14, 8, function(res){
//res.data 값은 이미지파일 경로 값(정상적으로 해당 경로에 이미지파일이 존재)
_this.wordObj.word(“getTextFile”, function(content){
_currentDocInfo.document.contentBody = content;
_this.wordObj.word(“setTextFile”, _currentDocInfo.document.contentBody,function(res){console.log(“setTextFile success”);},function(res){console.log(“setTextFile fail”);});
});
}, function(res){
console.log(“insertPicture fail”);
});
결과적으로 setTextFile 을 하여 오픈된 문서를 확이해보면 이미지파일이 하얀색의 이미지 화면으로 확인됩니다.
bart
10월 11, 2023, 3:39오전
6
안녕하세요.
코드상으로는 문제없어 보이는 것 같습니다.
이미지 데이터가 어느 시점에 유실되는지 확인이 필요할것 같습니다.
GetTextFile, SetTextFile 호출시 어떤 포맷으로 호출하고 있는지, 어느 시점에 데이터 유실이 발생하는지
확인이 필요해 보입니다.
문제 해결이 어려울 경우 담당 영업사원을 통해 기술지원을 받아 보시는게 좋을것 같습니다.