Izoau
2월 5, 2026, 11:19오전
1
글맵시를 만들기 위해 이리 저리 해 보다가.
function OnScriptMacro_글맵시()
{
HAction.Run(“TextArtCreate”);
HAction.GetDefault("ShapeObjDialog", HParameterSet.HShapeObject.HSet);
with (HParameterSet.HShapeObject)
{
ShapeDrawTextart.String = "이러면 되겠니?";
HSet.SetItem("ShapeType", 1);
}
HAction.Execute("ShapeObjDialog", HParameterSet.HShapeObject.HSet);
}
이렇게 해서 글맵시를 만들기는 하는데요
중간에 HAction.Run(“TextArtCreate”); 이후에 확인창이 뜨는데
그 확인창이 안나오게 할 수는 없나요?
SetMessageBoxMode(0x00000001);
SetMessageBoxMode(0x00000010);
SetMessageBoxMode(0x00000100);
SetMessageBoxMode(0x00001000);
SetMessageBoxMode(0x00010000);
SetMessageBoxMode(0x00100000);
이런 것들을 넣어봐도 안되네요
Izoau
2월 5, 2026, 11:52오전
2
function OnScriptMacro_글맵시()
{
act = CreateAction(“TextArtCreate”);
set = act.CreateSet();
act.GetDefault(set);
act.Execute(set);
HAction.GetDefault("ShapeObjDialog", HParameterSet.HShapeObject.HSet);
with (HParameterSet.HShapeObject)
{
ShapeDrawFillAttr.Type = BrushType("NullBrush");
ShapeDrawFillAttr.GradationAlpha = 0;
ShapeDrawFillAttr.WindowsBrush = 0;
ShapeDrawFillAttr.ImageAlpha = 0;
ShapeDrawLineAttr.TailFill = 1;
ShapeDrawLineAttr.HeadFill = 1;
Height = 2;
Width = 2;
HorzRelTo = HorzRel("Para");
TreatAsChar = 1;
ShapeDrawTextart.String = "이건\r\n어때?\r\n할 수 있니?";
OutsideMarginRight = MiliToHwpUnit(0.0);
OutsideMarginLeft = MiliToHwpUnit(0.0);
HSet.SetItem("ShapeType", 1);
}
HAction.Execute("ShapeObjDialog", HParameterSet.HShapeObject.HSet);
}
이렇게 구현하긴 했습니다만… 왠지 억지스러운 ㅎㅎㅎ
Izoau
2월 8, 2026, 11:02오전
3
위의 코드를 파이썬으로 구현하려 하는데 잘 안되네요
# [수정] 글맵시 생성 및 속성 설정 (사용자 요청 스크립트 구현)
act = hwp.CreateAction("TextArtCreate")
pset = act.CreateSet(); act.GetDefault(pset)
act.Execute(pset)
\# 2. 액션 및 파라미터셋 생성
act = hwp.CreateAction("ShapeObjDialog")
pset = act.CreateSet()
act.GetDefault(pset)
\# (1) 채우기 속성 바로 가져오기
fill_attr = pset.Item("ShapeDrawFillAttr")
fill_attr.SetItem("Type", 0) # NullBrush
fill_attr.SetItem("GradationAlpha", 0)
fill_attr.SetItem("WindowsBrush", 0)
fill_attr.SetItem("ImageAlpha", 0)
\# (2) 선 속성 바로 가져오기
line_attr = pset.Item("ShapeDrawLineAttr")
line_attr.SetItem("TailFill", 1)
line_attr.SetItem("HeadFill", 1)
\# (3) 텍스트(글맵시) 속성 바로 가져오기
text_art = pset.Item("ShapeDrawTextart")
text_art.SetItem("String", tag_msg)
\# (4) 메인 파라미터 설정 (pset에 직접 설정)
pset.SetItem("Height", 2)
pset.SetItem("Width", 2)
pset.SetItem("HorzRelTo", 0)
pset.SetItem("TreatAsChar", 1)
pset.SetItem("OutsideMarginRight", hwp.MiliToHwpUnit(0.0))
pset.SetItem("OutsideMarginLeft", hwp.MiliToHwpUnit(0.0))
\# HScript: HSet.SetItem("ShapeType", 1)
pset.SetItem("ShapeType", 1)
\# 4. 실행
act.Execute(pset)
이렇게 해 보았지만, 그 내용이 적용되지 않네요