안녕하세요? 웹한글기안기로 Table을 만드는 코드를 작성해 보려고 하는데, 잘 되지 않아 문의 드립니다.
열과 행을 인자로 받아 셀의 사이즈를 조절하고, 글자처럼 취급되는 테이블을 만들고자 다음과 같은 코드를 만들었습니다.
const act = hwpCtrl.CreateAction(‘TableCreate’);
const set = act.CreateSet();
// 이 라인을 추가하면 테이블 셀의 ColWidth 설정이 날아가버립니다.
act.GetDefault(set);
act.SetItem(‘Cols’, 2);
act.SetItem(‘Rows’, 1);
const colset = set.CreateItemArray(‘ColWidth’, 2);
const rowset = set.CreateItemArray(‘RowHeight’, 1);
const tablePropSet = set.Item(‘TableProperties’);
colset.SetItem(0, 2000);
colset.SetItem(1, 30000);
rowset.SetItem(0, 1);
tablePropSet.SetItem(‘TreatAsChar’, 1);
act.Execute(set);
상세 질문 내용입니다.
-
act.GetDefault(set)을 추가하면 테이블 셀에 설정한 너비 정보가 무시되어 버립니다. (그냥 반반 나뉘어진 테이블이 만들어집니다.)
-
act.GetDefault(set)을 추가하지 않으면 tablePropSet을 set.CreateItemSet(‘TableProperties’, ‘Table’)로 생성해야 하는데, 이렇게 해도 테이블 셀에 설정한 너비 정보가 무시되어 버립니다.
OCX에서는 잘 작동하던 기능인데, 어떻게 해야 되는지 알려주시면 감사하겠습니다.
2개의 좋아요
1.
act.SetItem(‘Cols’, 2);
act.SetItem(‘Rows’, 1);
위 두 줄은 아마
set.SetItem(‘Cols’, 2);
set.SetItem(‘Rows’, 1);
로 실행하신 거 맞지요?ㅎ
2.
아래처럼 너비 지정 옵션을 "임의 값"인 2로 주셔야 열 너비가 적용됩니다.
set.SetItem('WidthType', 2);
3.
act.GetDefault(set) 명령어는 설정을 날려버리는 명령어가 아니고
현재 한/글 문서의 (최근) 설정값으로 set을 채우는 명령어입니다.
모든 값을 직접 일일이 설정하실 거면 GetDefault를 실행하지 않으셔도 됩니다.
4.
“글자처럼 취급” 옵션은 표 생성 후에, 적용하셔야 합니다.
생성 직후에는 캐럿이 표 안에 있으므로
ParentCtrl.Properties의 “TreatAsChar” 속성을 1로 바꾸셔도 되고,
기존처럼 다시 CreateAction을 하셔도 되겠습니다.
도움이 되었기를 바랍니다.
3개의 좋아요
bart
3
안녕하세요.
@user16 님께서 말씀해주신것 처럼
“WidthType” 지정이 되지 않아 임의값 적용이 되지 않았습니다.
아래와 같이 적용하시면 될것 같습니다.
const act = HwpCtrl.CreateAction('TableCreate');
const set = act.CreateSet();
act.GetDefault(set);
set.SetItem('WidthType', 2);
set.SetItem('HeightType', 1);
set.SetItem('Cols', 2);
set.SetItem('Rows', 1);
const colset = set.CreateItemArray('ColWidth', 2);
const rowset = set.CreateItemArray('RowHeight', 1);
const tablePropSet = set.Item('TableProperties');
colset.SetItem(0, 3000);
colset.SetItem(1, 20000);
rowset.SetItem(0, 1);
tablePropSet.SetItem('TreatAsChar', 1);
act.Execute(set);
2개의 좋아요