안녕하세요
한글문서관련 프로그램을 작성하는 개발자 입니다.
우연히 한컴 개발커뮤니티에서 “현재 용지정보 가져오기 PageSetup” 관련 답변을 달아 놓으신 걸 검색 했습니다.
다름이 아니라 알려 주신대로 하니 특정파일(AAA.hwp)를 열고 하면 ‘0값만 나옵니다.
아래 코드좀 봐주실 수 있으신가요? C#으로 되어 있습니다.
AxHwpCtrl ax03 = new AxHwpCtrl();
ax03.CreateControl();
ax03.RegisterModule("FilePathCheckDLL", "FilePathCheckerModuleExample");
ax03.Clear();
ax03.Open(@"AAA.hwp");
HWPCONTROLLib.HwpAction hwpact = (HWPCONTROLLib.HwpAction)ax03.CreateAction("PageSetup");
HWPCONTROLLib.HwpParameterSet 화면 = (HWPCONTROLLib.HwpParameterSet)hwpact.CreateSet();
HWPCONTROLLib.HwpParameterSet 메뉴 = (HWPCONTROLLib.HwpParameterSet)화면.CreateItemSet("PageDef", "PageDef");
hwpact.GetDefault(화면);
double 값1 = Convert.ToDouble(메뉴.Item("TopMargin")) / 283.465;
이렇게 하면 0값만 나옵니다. (다른 마진도 마찬가지 입니다.)
전 AAA.hwp문서에 설정되어 있는 값을 가져오고 싶은데 잘 되질 않습니다.
중간에 메뉴.SetItem("TopMargin", MiliToHwpUnit(20));
값을 넣고 출력하면 '20'값이 출력 됩니다.
제 생각에 객체생성을 하면 기본값인 '0'으로 초기화 되는 느낌이 듭니다.
고수님의 조언 좀 부탁 드립니다.
이런 메일을 받았다. 필자는 개발자도 고수도 아닌 관계로, 한편으론 굉장히 송구한 마음이 들었다.
지난 포스팅에서, 상당히 상세하게 용지속성을 변경하는 몇 가지 방법에 대해 다룬 적이 있다.
번거로운 분들을 위해 코드만 보여드리면 대략 이렇다.
Act = hwp.CreateAction("PageSetup")
Set = Act.CreateSet()
Act.GetDefault(Set)
Set.SetItem("ApplyTo", 3)
Pset = Set.CreateItemSet("PageDef", "PageDef")
Pset.SetItem("TopMargin", 0)
Pset.SetItem("BottomMargin", 0)
Pset.SetItem("LeftMargin", 0)
Pset.SetItem("RightMargin", 0)
Pset.SetItem("HeaderLen", 0)
Pset.SetItem("FooterLen", 0)
Pset.SetItem("GutterLen", 0)
Act.Execute(Set)
페이지의 모든 여백, 머릿말과 꼬릿말, 제본여백을 0으로 주는 스크립트. 파이썬으로 한/글파일을 열고 위 코드를 실행하면,
이렇게 생겼던 쪽설정이
위처럼 바뀐다.
그런데 "설정"할 게 아니라, 현재값이 얼마인지 "조회"만 하고 싶다면?
코드는 사실 간단하다. 코드를 보여드리면,
Act = hwp.CreateAction("PageSetup")
Set = Act.CreateSet()
Act.GetDefault(Set)
위쪽여백 = Set.Item("PageDef").Item("TopMargin")
머리말여백 = Set.Item("PageDef").Item("HeaderLen")
print(위쪽여백)
print(머리말여백)
# Out[7]: 5668
# Out[8]: 4252
핵심은 Set.Item("PageDef").Item("TopMargin") 방식으로만 조회가 가능하다는 것이다.
(필자가 아는 한, 조회가능한 유일한 방식이다. 다른 방법은 4,000이나 8,000 또는 None을 리턴했다.)
위 과정을 캡쳐해보았다. 2분짜리 짧은 영상임.
이번 포스팅은 여기서 마친다.
결론 : Set.Item("PageDef").Item("TopMargin")을 사용해 보시길.
'아래아한글 자동화 > python+hwp 중급' 카테고리의 다른 글
[교육운영업무 자동화] 청구서, 영수증 및 수료증 자동발급 (0) | 2020.12.27 |
---|---|
[5/5, HwpEqn] 수식을 png이미지와 MathML, LaTeX로 내보내기 (4) | 2020.12.20 |
[4/5, HwpEqn] 수식문자열로 수식 만드는 방법 (0) | 2020.12.18 |
댓글