KeyIndicator()
(True, 1, 1, 2, 1, 1, 2, 0, ‘문단 나눔’)
[0]: 성공/실패 : True/False
[1]: 총구역
[2]: 현재구역
[3]: 페이지
[4]: 단
[5]: 줄
[6]: 칸
[7]: 수정/삽입 : 1/0
위 내용처럼 KeyIndicator() 을 사용하면, 문서의 정보를 구할 수 있습니다.
문서의 전체 페이지 수를 구하려고, 문서의 제일 마지막 페이지로 이동 한 뒤
현재 페이지(인덱스번호 3)을 구했었습니다.
그런데, 미주 등의 추가로 인하여 전체 페이지를 구하려고 하면 어떻게 하면 좋을까요…?
아이디어는 가장 마지막 미주의 내부로 진입하면 되는데…
혹시 다른 방법, 아이디어가 있을까요…?
ps. 미리 감사드립니다.^^
이 범주에서는 한글 오토메이션에 대한 다른 사용자의 기술 지원을 제공받을 수 있습니다.
한글 오토메이션의 API 사용/연동은 개발 가이드 를 참조하세요.
일반 문의는 한글과컴퓨터 웹사이트의 고객 지원 을 이용하세요.
개인정보가 포함되지 않도록 유의하세요. 게시글 또는 댓글에 개인정보가 포함된 내용이 있을 경우 게시물이 숨김처리 될 수 있습니다.
1개의 좋아요
cwy
10월 19, 2023, 7:12오전
2
안녕하세요. 한컴디벨로퍼입니다.
현재 담당자가 내용을 확인하고 있습니다. 조금만 기다려 주세요.
한컴디벨로퍼를 이용해 주셔서 감사합니다.
안녕하세요 ^^
KeyIndicator API 만 사용하셔서는 원하시는 대로 페이지 구하기는 어려울것 같습니다 .
미주 내부 진입은 아이디어를 조금 드릴수있을것 같습니다.
찾기를 통해서 스타일을 찾을수 있는데 각주/미주 스타일을 찾아서 가면 내부진입은 가능할것 같습니다 ^^
HAction.GetDefault("RepeatFind", HParameterSet.HFindReplace.HSet);
with (HParameterSet.HFindReplace)
{
ReplaceString = "";
FindString = "";
IgnoreReplaceString = 0;
IgnoreFindString = 0;
Direction = FindDir("Backward");
WholeWordOnly = 0;
UseWildCards = 0;
SeveralWords = 0;
AllWordForms = 0;
MatchCase = 0;
ReplaceMode = 0;
ReplaceStyle = "";
FindStyle = "각주";
FindRegExp = 0;
FindJaso = 0;
HanjaFromHangul = 0;
IgnoreMessage = 1;
FindType = 1;
}
HAction.Execute("RepeatFind", HParameterSet.HFindReplace.HSet);
감사합니다 ^^
간단히 hwp.PageCount
로 전체 쪽수를 구하실 수 있습니다.
미주가 한 페이지를 넘겼더라도 PageCount로 카운트됩니다.
마지막 미주의 내부로 진입하는 코드는 아래와 같이 ctrl을 사용하시는 것을 추천드립니다.
ctrl = hwp.LastCtrl
while ctrl:
if ctrl.CtrlID == "atno": # 다만, 각주와 미주를 구분하지 않음ㅜ
hwp.SetPosBySet(ctrl.GetAnchorPos(0))
break
ctrl = ctrl.Prev
위 코드의 시연화면은 다음과 같습니다.
도움이 되었기를 바랍니다.
<참고>
각주와 미주를 구분해서, 미주 의 마지막 주석으로 이동하고 싶은 경우에는 아래와 같이 실행하시면 됩니다.
ctrl = hwp.LastCtrl
while ctrl:
if ctrl.CtrlID == "en":
hwp.SetPosBySet(ctrl.GetAnchorPos(0))
hwp.Run("NoteModify")
break
ctrl = ctrl.Prev
1개의 좋아요