반응형
이전 버전까지는 정상적으로 사이즈가 정상적으로 반영되었는데
특정패치이후에 안됩니다.
일시적인 버근줄알았는데 2022까지 계속 이어지네요.
문서의 width, widthRelTo를 적용해봐도 동일하게 용지사이즈만큼 늘어납니다.
질문출처 : 한글과컴퓨터 - 개발자 커뮤니티
이런 문제들은 대체로
이런 문제들은 대체로 필요한 파라미터 몇 개가 빠져 있어서 생깁니다.
표 생성시 필요한 파라미터가 굉장히 많기도 하고요.
프로그램에서 표를 만들면 행, 열의 수만 입력하고 엔터를 치면 표가 만들어지지만
이 간단한 과정을 매크로로 녹화해보면 깜짝 놀라게 됩니다.
코드가 너무 길거든요.
1행1열의 표를 삽입하는 매크로는 아래와 같습니다.
function OnScriptMacro_중국어1성()
{
HAction.GetDefault("TableCreate", HParameterSet.HTableCreation.HSet);
with (HParameterSet.HTableCreation)
{
Rows = 1;
Cols = 1;
WidthType = 0;
HeightType = 1;
WidthValue = MiliToHwpUnit(148.0);
HeightValue = MiliToHwpUnit(4.0);
CreateItemArray("ColWidth", 1);
ColWidth.Item(0) = MiliToHwpUnit(144.4);
CreateItemArray("RowHeight", 1);
RowHeight.Item(0) = MiliToHwpUnit(3.0);
TableProperties.Width = 41954;
}
HAction.Execute("TableCreate", HParameterSet.HTableCreation.HSet);
}
그럼 위 코드와 질문자님의 코드와 비교를 해 볼까요?
질문자님의 CreateAction 기반 코드와
스크립트매크로의 HAction 방식의 코드를 비교해봅시다.
사실 굉장히 달라 보입니다. 다른 언어로 작성된 스크립트인가 싶죠.
이 때문에 다소 불편한 부분이 있는 건 맞습니다.
하지만 액션이름이나, 파라미터셋의 이름, 프로퍼티 등은 거의 동일해요.
상호 참고하면서 코드를 변환하는 것도 가능해요. 번거롭긴 하지만요.
매크로에는 있는데, 질문자님의 코드에는 없는 라인이 두 줄 보입니다.
바로 WidthType 과 HeightType의 정의에 대한 라인이 없다는 건데요.
제가 녹화한 코드의 WidthType=0, HeightType=1이 어떤 의미인지
다시 한/글 프로그램을 살펴볼까요?
가운데 크기 지정 섹션의 너비 속성(단에 맞춤)과 높이(임의 값)를 뜻한다는 걸 짐작할 수 있습니다.
그럼 질문자님의 의도대로
너비도 임의 값, 높이도 임의 값으로 지정하려면 어떻게 해야겠죠?
둘 다 "임의값"으로 부여하면 됩니다.
임의값으로 놓고 다시 녹화해보겠습니다.
다시 아래와 같은 코드를 얻었습니다.
function OnScriptMacro_중국어1성()
{
HAction.GetDefault("TableCreate", HParameterSet.HTableCreation.HSet);
with (HParameterSet.HTableCreation)
{
Rows = 1;
Cols = 1;
WidthType = 2; # <---
HeightType = 1; # <---
WidthValue = MiliToHwpUnit(50.0);
HeightValue = MiliToHwpUnit(50.0);
CreateItemArray("ColWidth", 1);
ColWidth.Item(0) = MiliToHwpUnit(46.4);
CreateItemArray("RowHeight", 1);
RowHeight.Item(0) = MiliToHwpUnit(49.0);
TableProperties.Width = 14173;
}
HAction.Execute("TableCreate", HParameterSet.HTableCreation.HSet);
}
8번째 라인, WidthType이 0에서 2로 바뀌었네요.
그럼 WIdthType과 HeightType 둘 다 임의값으로 정의하고 코드를 한 번 실행해보겠습니다.
의도대로 잘 작동하네요.
저도 매뉴얼을 보고 작성한 코드가 원하는대로 작동이 잘 안 된다 싶을 때가 많이 있어요.
그럴 때는 위와 같은 방식을 사용합니다.
스크립트매크로와 비교해서 빠진 파라미터가 없는지 체크한다는 거지요.
사실 요즘은 가능하면 스크립트매크로를 먼저 녹화해요.
그걸 참고해서 액션 코드를 짜는 일이 더 많은 것 같네요.
도움이 되었기를 바랍니다.
반응형
'아래아한글 자동화 > python+hwp 중급' 카테고리의 다른 글
hwp 표 캡션 서식 일괄 수정하기 (1) | 2022.12.09 |
---|---|
[HDMI] 최종화 : 취합문서 스타일 교정 (1) | 2022.12.08 |
[HDMI] 비슷한 문자열 매치 (by difflib.SequenceMatcher) (0) | 2022.12.07 |
댓글