표를 만들 때 단에 딱 맞게 만들고 싶습니다.

화면 캡처 2024-09-23 164121

한글스크립트에서
HAction.GetDefault(“TableCreate”, HParameterSet.HTableCreation.HSet);
with (HParameterSet.HTableCreation)
{
Rows = 1;
Cols = 3;
WidthType = 1;
HeightType = 0;
}
HAction.Execute(“TableCreate”, HParameterSet.HTableCreation.HSet);

파이썬에서는
hwp.HAction.GetDefault(“TableCreate”, hwp.HParameterSet.HTableCreation.HSet)

hwp.HParameterSet.HTableCreation.Rows = 1

hwp.HParameterSet.HTableCreation.Cols = 3

hwp.HParameterSet.HTableCreation.WidthType = 1

hwp.HParameterSet.HTableCreation.HeightType = 0

hwp.HParameterSet.HTableCreation.TableProperties.TreatAsChar = 1

hwp.HAction.Execute(“TableCreate”, hwp.HParameterSet.HTableCreation.HSet)

그런데 단에 딱 맞게 출력이 안되네요… WidthType=0이나 1로 변경해도 안되요…
무엇을 더 추가해야 할까요?

1개의 좋아요

안녕하세요 ^^
파이썬환경에서 HSet을 생성시 주소값이 매번 새로생성되어 정상적으로 동작하지 않는 이슈가 있습니다.
파이썬에선 CreateAction과 CreateSet을 이용해서 액션을 실행하는 방식으로 사용해야할것 같습니다.
감사합니다.

1개의 좋아요

@hbjung님 설명해준 이유 때문에
아래와 같이 우회 작성을 해주시면 됩니다.

act = hwp.CreateAction("TableCreate")
set = act.CreateSet()

act.GetDefault(set)

set.SetItem("Rows", 1)
set.SetItem("Cols", 5)
set.SetItem("widthType", 0)
set.SetItem("HeightType", 0)
tblSet = set.Item("TableProperties")
tblSet.SetItem("TreatAsChar", 1)
set.SetItem("TableProperties", tblSet)

act.Execute(set)

감사합니다.

2개의 좋아요

저번 답변 감사드립니다.

act = hwp.CreateAction(“TableCreate”)
set = act.CreateSet()
act.GetDefault(set)
set.SetItem(“Rows”, 1)
set.SetItem(“Cols”, 2)
set.SetItem(“widthType”, 2)
set.SetItem(“HeightType”, 0)
colset = set.CreateItemArray(“ColWidth”, 2)
colset.SetItem(0, 700)
colset.SetItem(1, 500)
tblSet = set.Item(“TableProperties”)
tblSet.SetItem(“TreatAsChar”, 1)
set.SetItem(“TableProperties”, tblSet)
act.Execute(set)

이렇게 표칸 크기도 조절하고 싶은데… 안되요… ㅜㅜ 무엇이 잘못되었을까요…

1개의 좋아요

오타가 있어요…
widthTypeWidthType으로 바꾸시면 잘 작동합니다.

질문의 내용에 좀 더 보태어서
단의 수를 변경해도 단의 너비에 맞도록 표를 수정하는 방법도 있습니다.

파이썬이 아니라 그렇긴 합니다만…
관심있으시면 아래 링크에서 확인해 보셔요.

https://blog.naver.com/kosohn/223356549326

2개의 좋아요