안녕하세요? 용지 설정이 다른 문서를 끼워넣기 위해 InsertFile Action을 사용하고자 하는데 잘 안되네요
function hwpInsertFileAction(hwpCtrl, text, format, arg) {
return new Promise((resolve, reject) => {
const action = hwpCtrl.CreateAction(‘InsertFile’);
const set = action.CreateSet();
const blob = new Blob([text], { type: 'plain/text' });
set.SetItem('FileName', blob);
set.SetItem('FileFormat', format); // HWPML2X
set.SetItem('FileArg', arg); // 'imagedownsize;' or ''
set.SetItem('KeepSection', 1);
set.SetItem('KeepStyle', 1);
set.SetItem('KeepCharshape', 1);
set.SetItem('KeepParashape', 1);
action.Execute(set, (res) => {
resolve(res);
});
}
}
위와 같은 wrapper function을 하나 정의 후 사용하려고 하는데 그냥 빈 화면만 표시됩니다.
text인자로는 DB에서 조회한 HML 문자열이 들어가고, format은 ‘HWPML2X’, arg는 'imagedownsize’이거나 빈 문자열로 넘겨봤습니다.
참고로 BreakSection 후 SetTextFile을 'insertfile’로 해서 넣어보면 A4 문서에 A3 문서를 끼워넣으면 그냥 A4로 되어버립니다.
제가 어느 부분을 실수했는지 알려주시면 감사하겠습니다.
안녕하세요. 한컴디벨로퍼입니다.
현재 담당자가 내용을 확인하고 있습니다. 조금만 기다려 주세요.
smlee
11월 26, 2024, 7:35오전
3
안녕하세요.
InsertFile 액션 사용시 FileName은 blob을 지원하지 않아서 url로 넣어주셔야합니다.
set.SetItem('FileName', 파일 URL );
그리고 InsertFile 액션은 BreakSection 없이도 새구역에 실행됩니다.
감사합니다.
1개의 좋아요
이전 질문에서는 FileName에 blob이 된다고 하셔서 해봤던건데 안되는군요…
a4 문서에서 breaksection후 a3 가로 문서를 settextfile 했을때 a3가 아닌 기존 a4사이즈로 삽입이 돼서 insertfile action에서는 가능한가 해서 질문드렸습니다.
문서 용지가 다른 문서를 끼워넣는 정석적인 방법이 있다면 알려주시면 감사하겠습니다
bart
11월 26, 2024, 8:30오전
5
용지가 다른 문서를 끼워넣는 방법은
InsertFile 액션을 사용하는 방법입니다.
다만 해당 액션이 blob 형식을 지원하지 않아서 다른 방법이 필요합니다.
(blob 지원 가능할것으로 생각했으나, 확인해보니 지원이 되지 않았습니다.)
필터서버에서 접근 가능한 URL 형식으로 “FileName” 에 설정을 하거나,
필터서버에 업로드하고, 서버 경로를 “FileName” 에 설정 해야 합니다.
set.SetItem('FileName', 'http://server/url');
set.SetItem('FileName', '/home/user/data/file.hml');
액션 구동시 아래 옵션을 설정하면 기존 문서의 형식이 그대로 유지되며 끼워넣기가 됩니다.
set.SetItem('KeepSection', 1);
set.SetItem('KeepStyle', 1);
set.SetItem('KeepCharshape', 1);
set.SetItem('KeepParashape', 1);
답변 감사합니다.
api 문서에서는 향후 서버상 경로는 지원되지 않을 수 있다는 식으로 기술되어 있는 것 같은 데 그렇게 코딩을 해도 괜찮을까요?
bart
11월 26, 2024, 9:41오전
7
서버 경로가 많이 사용되고 있어 계속 지원될것 같습니다.
서버 경로를 사용하면 서버 경로가 노출되는 보안상의 이슈가 있는데,
환경설정에 “basePath” 설정하여 사용하시면 해당 경로 기준으로 하위 경로로 지정되어
어느정도 안전성 확보 가능합니다.
blob 지원 여부도 내부적으로 검토해 보겠습니다.