글상자를 그린 후 상자 안에 텍스트를 써야 하는데 상자 바깥으로 나옵니다.

안녕하세요.
글상자(표가 아닌 사각형 그리기)를 그린 후, 사각형 안쪽에 원하는 텍스트를 삽입하는 코드를 구현하려고 합니다. 먼저 사각형을 그리는 액션을 취하고, 이후 텍스트 삽입 액션을 취하는 것으로 코딩해 보았는데요…
문제는 상자 안쪽이 아닌 상자 바깥에 텍스트가 입력 되네요.
고수님들의 많은 조언 부탁 드립니다.

개발 환경 : 한글 버전 2020, Visual Studio 2019 Professional, Visual C#

private void button3_Click(object sender, EventArgs e)
{

        HWPCONTROLLib.DHwpAction hact1 = (HWPCONTROLLib.DHwpAction)axHwpCtrl1.CreateAction("DrawObjCreatorRectangle");
        HWPCONTROLLib.DHwpParameterSet hset1 = (HWPCONTROLLib.DHwpParameterSet)hact1.CreateSet();
        hact1.GetDefault(hset1);
        hset1.SetItem("TreatAsChar", 0);
        hset1.SetItem("TextWrap", 3);
        hset1.SetItem("VertOffset", 9921); 
        hset1.SetItem("VertAlign", 0);
        hset1.SetItem("VertRelTo", 0);
        hset1.SetItem("HorzOffset", 17008); 
        hset1.SetItem("HorzAlign", 0);
        hset1.SetItem("HorzRelTo", 0);
        hset1.SetItem("HeightRelTo", 2);
        hset1.SetItem("Height", 10204); // '36mm*283.465=15218
        hset1.SetItem("WidthRelTo", 4);
        hset1.SetItem("Width", 20409); // '72mm*283.465=20409
        hset1.SetItem("AdjustTextbox", 1);
        hset1.SetItem("ShapeCreationMode", 0);
        hset1.SetItem("ShapeCreationType", 1);

        HWPCONTROLLib.DHwpParameterSet hsubset1_1 = (HWPCONTROLLib.DHwpParameterSet)hset1.CreateItemSet("ShapeDrawFillAttr", "DrawFillAttr");
        hsubset1_1.SetItem("Type", 0);

        HWPCONTROLLib.DHwpParameterSet hsubset1_2 = (HWPCONTROLLib.DHwpParameterSet)hset1.CreateItemSet("ShapeDrawLineAttr", "DrawLineAttr");
        hsubset1_2.SetItem("Style", 1);
        hsubset1_2.SetItem("Width", 34.0158);

        HWPCONTROLLib.DHwpParameterSet hsubset1_3 = (HWPCONTROLLib.DHwpParameterSet)hset1.CreateItemSet("ShapeDrawLayOut", "DrawLayOut");
        hsubset1_3.SetItem("CreateNumPt", 4);
        HWPCONTROLLib.DHwpParameterArray ptset1 = (HWPCONTROLLib.DHwpParameterArray)hsubset1_3.CreateItemArray("CreatePt", 8);
        ptset1.SetItem(0, 0);
        ptset1.SetItem(1, 0);
        ptset1.SetItem(2, 20409);
        ptset1.SetItem(3, 0);
        ptset1.SetItem(4, 20409);
        ptset1.SetItem(5, 10204);
        ptset1.SetItem(6, 0);
        ptset1.SetItem(7, 10204);
        hact1.Execute(hset1);

        HWPCONTROLLib.DHwpAction hact2 = (HWPCONTROLLib.DHwpAction)axHwpCtrl1.CreateAction("DrawObjCreatorObject");
        HWPCONTROLLib.DHwpParameterSet hset2 = (HWPCONTROLLib.DHwpParameterSet)hact1.CreateSet();
        HWPCONTROLLib.DHwpParameterSet hsubset2_1 = (HWPCONTROLLib.DHwpParameterSet)hset1.CreateItemSet("ShapeDrawLayOut", "DrawLayOut");
        hsubset2_1.SetItem("CreateNumPt", 4);
        HWPCONTROLLib.DHwpParameterArray ptset2 = (HWPCONTROLLib.DHwpParameterArray)hsubset2_1.CreateItemArray("CreatePt", 8);
        ptset2.SetItem(0, 0);
        ptset2.SetItem(1, 0);
        ptset2.SetItem(2, 20409);
        ptset2.SetItem(3, 0);
        ptset2.SetItem(4, 20409);
        ptset2.SetItem(5, 10204);
        ptset2.SetItem(6, 0);
        ptset2.SetItem(7, 10204);
        hact2.Execute(hset2);

        HWPCONTROLLib.DHwpAction hact3 = (HWPCONTROLLib.DHwpAction)axHwpCtrl1.CreateAction("InsertText");
        HWPCONTROLLib.DHwpParameterSet hset3 = (HWPCONTROLLib.DHwpParameterSet)hact3.CreateSet();
        hact3.GetDefault(hset3);
        hset3.SetItem("Text", "가나다라 123-1");
        hact3.Execute(hset3);

    }
1개의 좋아요

안녕하세요!!

hact1.Execute(hset1); 실행 후에 axHwpCtrl1.run(“ShapeObjTextBoxEdit”);을 이용하시면 글상자 안으로 캐럿이 이동됩니다.

그 이후에 텍스트 입력하시면 됩니다.

또 궁금한사항 있으시면 문의주세요!

2개의 좋아요