소수의 개발자 이겠지만, 저와 똑같은 과정을 겪을 분들을 위해 포스팅 한다.

타겟 환경이 mac OS X 이지만, 손에 익은 에디터가 EditPlus 라서 윈도우에서 개발을 하고 mac 에 옮기는 는 프로세스로 개발을 했다. 개발을 중반쯤 넘길때 예상대로(=메뉴얼 대로) 동작하지 않는 부분이 발견되었다. 1주 반동안 고민의 고민을 거듭하고 셀수없는 검색과 시도를 했지만 해결하지 못한채 혹시나 하는 마음에 소스를 mac 에 복사했는데, 이럴수가.. 메뉴얼대로 동작을 하는 것이었다.!!  의미없이 보낸 시간이 너무 아까워서 화가 치밀어 올랐다.

다이얼로그를 안띄우고 실행하면 아래 코드가 올바르게 동작하는데, 메뉴얼에선 이에 관해 전혀 언급되어 있지 않다. 아도비가 알고서 그런건지 모르겠지만, saveAs 함수가 사용된 모든 예제들은 다이얼로그 없이 실행되는 것으로 되어 있다. 

나는 타겟 환경이 mac OS X 이라 이런 문제를 알 수 있었지만, 타겟 환경이 win 인 개발자들은 영문도 모른채 포기할것 같다는 생각이 들어서 급히 포스팅 한다.

app.execDialog() 함수를 실행해서 다이얼로그를 띄우고 버튼 이벤트 메소드에 다음과 같은 코드를 구현하면 다음과 같은 오류가 발생한다. 

oPDF = app.openDoc({
cPath: this.data.oRetn.cPath,
cFS: this.data.oRetn.cFS,
bHidden: true   // mac 에선 올바르게 동작. win 에선 화면이 나타남
});

oPDF.saveAs({
cPath : sPath
, cConvID : 'com.adobe.acrobat.accesstext'
, bCopy : true
, bPromptToOverwrite : false
});

// mac 에선 올바르게 동작. win 에선 다이얼로그가 닫혀질때까지 실행되지 않음.
// 50 페이지 이상 넘어가면 Acrobat 이 뻗게 됨.
oPDF.closeDoc(true);  



+ Recent posts