GetTextFile / SetTextFile 함수문의

자바스크립트로 기안기 개발을 하고 있습니다.

for문 안에서 GetTextFile 또는 SetTextFile 함수를 사용 시 FORMAT TEXT는 변수에 담아 처리가 가능 하지만

HWP또는 HWPML2X는 Callback 비동기로 인하여 for문이 종료 후 작동하기 때문에 처리를 할 수가 없습니다.

예전 자료들을 확인해 보면 이상없이 잘 사용 했던것 같던데 함수가 최근에 변경이 된것인지 문의 드립니다.

현재현상은 웹한글 기안기 예제 | 한컴디벨로퍼 사이트에서도 발생합니다.

  • 예제코드

HwpCtrl.Run(“SelectAll”);
//var gtf = HwpCtrl.GetTextFile(“TEXT”, “saveblock”); // 글자 복사잘됨
var gtf = HwpCtrl.GetTextFile(“HWP”, “saveblock”); //서식글자 복사안됨
alert(gtf);
HwpCtrl.Run(“MoveLineEnd”);
HwpCtrl.Run(“BreakPara”);
//var stf = HwpCtrl.SetTextFile(gif, “TEXT”, “”); //글자복사잘됨
var stf = HwpCtrl.SetTextFile(gtf, “HWP”, “”); //서식글자 복사안됨
alert(stf);

1개의 좋아요

안녕하세요. 한컴디벨로퍼입니다.

현재 담당자가 내용을 확인하고 있습니다. 조금만 기다려 주세요.

한컴디벨로퍼를 이용해 주셔서 감사합니다.

안녕하세요.

웹한글 기안기에서는 저장/불러오기 동작시 필터서버를 통해 동작이 이루어지기 때문에
이전 ActiveX 컨트롤과는 다르게 비동기 방식으로 동작할 수 밖에 없습니다.

때문에 HWP, HWPML2X형식으로 GetTextFile API 를 사용하기 위해서는
관련 로직도 비동기 형식으로 변경되어야 합니다.

for 문을 통해 동작은 어려울것 같고 callback 함수를 통해 순차적으로 동작하도록
로직 변경이 되어야 할것 같습니다.

HwpCtrl.Run("SelectAll");
//var gtf = HwpCtrl.GetTextFile(“TEXT”, “saveblock”); // 글자 복사잘됨
HwpCtrl.GetTextFile("HWP", "saveblock", function(gtf) {
  alert(gtf);
  HwpCtrl.Run("MoveLineEnd");
  HwpCtrl.Run("BreakPara");
  //var stf = HwpCtrl.SetTextFile(gif, “TEXT”, “”); //글자복사잘됨
  HwpCtrl.SetTextFile(gtf, "HWP", "", function(stf) {
    alert(stf.result);
  });
});

필드 및 액션생성을 통해 처리 하였습니다. 자세한 설명 감사합니다!