표 속성에 대해서 질문이 있습니다.

image
표 만들기 클릭했을 때 기타에 '글자처럼 취급’을 디폴트로 체크되게 하는 방법이 있을까요?

불가능 하다면 표를 만들 때마다 표 속성을 '글자처럼 취급’이 되게 하는 방법이 있을까요?

hwp.ParameterSet… 마지막 부분에 글자처럼 취급을 해줘보세요
아래는 제가 사용하고 있는 내용입니다.

        // 표 만들기 (줄, 칸, 가로크기, 세로크기)
        private void CreateTable(int row, int column, double width, double height)
        {
            hwp.HAction.GetDefault("TableCreate", hwp.HParameterSet.HTableCreation.HSet);
            hwp.HParameterSet.HTableCreation.Rows = row;
            hwp.HParameterSet.HTableCreation.Cols = column;
            hwp.HParameterSet.HTableCreation.WidthType = 2; ;
            hwp.HParameterSet.HTableCreation.HeightType = 1; ;
            hwp.HParameterSet.HTableCreation.WidthValue = hwp.MiliToHwpUnit(width);
            hwp.HParameterSet.HTableCreation.HeightValue = hwp.MiliToHwpUnit(height);
            hwp.HParameterSet.HTableCreation.CreateItemArray("ColWidth", column);           // 칸 수만큼 배열 생성
            for (int i = 0; i < column; i++)
            {
                hwp.HParameterSet.HTableCreation.ColWidth.item[i] = hwp.MiliToHwpUnit((width / column) - 3.6);  //칸마다 폭 크기 설정
                // 칸마다 왼쪽 여백 1.8,  오른쪽 여백 1.8을 빼줘야 함
            }
            //hwp.HParameterSet.HTableCreation.ColWidth.item[0] =  hwp.MiliToHwpUnit(16.0);
            //hwp.HParameterSet.HTableCreation.ColWidth.item[1] =  hwp.MiliToHwpUnit(36.0);
            //hwp.HParameterSet.HTableCreation.ColWidth.item[2] = hwp.MiliToHwpUnit(46.0);
            //hwp.HParameterSet.HTableCreation.ColWidth.item[3] = hwp.MiliToHwpUnit(16.0);
            //hwp.HParameterSet.HTableCreation.ColWidth.item[4] = hwp.MiliToHwpUnit(16.0);;
            hwp.HParameterSet.HTableCreation.CreateItemArray("RowHeight", row); ;            // 행 수 만큼 배열 생성
            for (int i = 0; i < row; i++)
            {
                hwp.HParameterSet.HTableCreation.RowHeight.item[i] = hwp.MiliToHwpUnit((height / row) - 1.0);     // 행마다 높이 설정
            }
            //hwp.HParameterSet.HTableCreation.RowHeight.item[0] = hwp.MiliToHwpUnit(40.0);
            //hwp.HParameterSet.HTableCreation.RowHeight.item[1] = hwp.MiliToHwpUnit(20.0);
            //hwp.HParameterSet.HTableCreation.RowHeight.item[2] = hwp.MiliToHwpUnit(50.0);
            //hwp.HParameterSet.HTableCreation.RowHeight.item[3] = hwp.MiliToHwpUnit(20.0);
            //hwp.HParameterSet.HTableCreation.RowHeight.item[4] = hwp.MiliToHwpUnit(20.0);

            //hwp.HParameterSet.HTableCreation.TableProperties.HorzOffset = hwp.MiliToHwpUnit(0.0);
            //hwp.HParameterSet.HTableCreation.TableProperties.VertOffset = hwp.MiliToHwpUnit(0.0);
            hwp.HParameterSet.HTableCreation.TableProperties.Width = mm2Hu(width);
            hwp.HParameterSet.HTableCreation.TableProperties.OutsideMarginLeft = hwp.MiliToHwpUnit(0);
            hwp.HParameterSet.HTableCreation.TableProperties.OutsideMarginRight = hwp.MiliToHwpUnit(0);
            hwp.HParameterSet.HTableCreation.TableProperties.OutsideMarginTop = hwp.MiliToHwpUnit(0);
            hwp.HParameterSet.HTableCreation.TableProperties.OutsideMarginBottom = hwp.MiliToHwpUnit(0);
            hwp.HParameterSet.HTableCreation.TableProperties.TreatAsChar = 1;       //  # ;글자처럼 취급
            hwp.HAction.Execute("TableCreate", hwp.HParameterSet.HTableCreation.HSet);
        }
1개의 좋아요

위에 쓰는 방법이 javascript에서 쓰는 방법인가요?
c#일때의 코드 아닌가요?

javascript에서 어떻게 쓰는지 궁금해서요…

안녕하세요.
javascript 로 글자처럼 취급 표 생성은 아래처럼 하시면 됩니다.

var tbact = HwpCtrl.CreateAction("TableCreate");
var tbset = tbact.CreateSet();
tbact.GetDefault(tbset);
tbset.SetItem("Rows", 5);
tbset.SetItem("Cols", 5);
var table = tbset.Item("TableProperties");
table.SetItem("TreatAsChar", 1);
tbact.Execute(tbset);

c# 코드입니다. javascript 코드 질문인지 몰랐었네요 ㅎㅎ

답변 감사합니다
그런데 제가 궁금한건 바로 테이블을 만드는 코드가 아니라
제가 글을 작성하면서 테이블을 생성했을 시 디폴트로 '글자처럼 취급’이라는 표 속성이 설정되거나

image
아니면 위의 그림처럼 제가 표 만들기를 클릭 했을 시, 밑에 있는 ‘글자처럼 취급’ 체크박스가
자동으로 체크돼있는 상태가 가능한지…
그게 궁금합니다

가능할까요?

표 만들기 기능에서 “글자처럼 취급” 기본값은 체크가 되어있지 않습니다.
이후 사용자가 설정하게 되면 이후에는 마지막 설정값을 따라갑니다.
다만, 페이지를 다시 로딩시에는 초기화가 되기 때문에 기본값으로 체크가 되지 않습니다.

UI 나 단축키로 동작하는 동작을 스크립트로 제어할수는 없을것 같습니다.

그럼 제가 생각할 수 있는 방법은…
글을 다 작성하고 저장하기 직전에 테이블의 갯수를 세서 각각의 테이블에 ‘글자처럼 취급하기’ 속성을 설정해주는 것인데

이 방법은 가능할까요?

전체 표에 대해 속성 변경은 가능합니다.
하지만 “글자처럼 취급” 속성 변경으로 인하여 레이아웃이 변경될 수 있습니다.

var ctrl = HwpCtrl.HeadCtrl;
while (ctrl) {
    if (ctrl.CtrlID === 'tbl') {
        var tbset = ctrl.Properties;
        tbset.SetItem("TreatAsChar", 1);
        ctrl.Properties = tbset;
    }
    ctrl = ctrl.Next;
}

잘 작동하고 있습니다!
감사합니다!!

1개의 좋아요

알려주신 부분은 잘 작동하는데
다른 방법이 궁금해서 질문 남깁니다.

웹한글기안기에서 표를 만들때마다 그 즉시, 바로 ‘글자처럼 취급하기’ 속성을 부여하는 것은 불가능한가요?
본문에 표를 생성할때마다(글자처럼 취급하기 체크박스를 선택하지 않아도…) ‘글자처럼 취급하기’ 속성이 부여돼야 원하는 결과가 나올 것 같습니다.

혹시 방법이 있다면 알려주시면 감사하겠습니다!

표 만들기 버튼을 기안기 외부에 별도로 만들어서 스크립트를 통해 입력하는 방법 이외에
기본 제공되는 메뉴 및 버튼을 통해 입력하는것을 제어할수는 없을것 같습니다.