이 범주에서는 한글 오토메이션에 대한 다른 사용자의 기술 지원을 제공받을 수 있습니다.
- 한글 오토메이션의 API 사용/연동은 개발 가이드를 참조하세요.
- 일반 문의는 한글과컴퓨터 웹사이트의 고객 지원을 이용하세요.
- 개인정보가 포함되지 않도록 유의하세요. 게시글 또는 댓글에 개인정보가 포함된 내용이 있을 경우 게시물이 숨김처리 될 수 있습니다.
문서에서 빈 페이지(Text , 객체)를 삭제 하는 방법을 알고 싶습니다.
이 범주에서는 한글 오토메이션에 대한 다른 사용자의 기술 지원을 제공받을 수 있습니다.
문서에서 빈 페이지(Text , 객체)를 삭제 하는 방법을 알고 싶습니다.
안녕하세요.
작업 중인 문서에서 텍스트, 개체가 아무것도 없는 빈 페이지만 골라서 삭제하고자 하는 것인지요?
문의 사항을 조금 더 자세히 작성 부탁드립니다.
감사합니다.
네 각 페이지를 기준으로 Text / 표 / 이미지 / 개체 등 빈 페이지 일 경우 해당 페이지를 삭제하는 기능입니다.
GetPageText라는 메서드가 있었던 것 같은데요. 문서 끝에서부터 GoTo로 한 페이지씩 올라오면서 GetPageText로 텍스트를 조회하거나, 한 칸 움직였을 때 다른 페이지로 이동하는지 여부를 체크해서, 이에 해당하면 Delete를 실행하는 간단한 방식으로 코드를 짜시면 될 것 같습니다.
안녕하세요.
ilco님의 GetPageText 메소드는 이미지나 개체를 제외해서 추출하여 빈 페이지 체크가 정확치 않아
MovePageBegin, MovePageEnd 액션과 GetPos 메소드를 이용했습니다.
(C++ 작성 예제)
void CMFCApplication3Dlg::OnBnClickedButton6()
{
// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
long pagecnt = m_app.get_PageCount();
// 앞쪽이 지워질 때 쪽 번호가 변경될 수 있어서 뒤부터 체크
for (int i = pagecnt; i > 0; i--) {
// 찾아가기 - 쪽
CDHwpAction gotoAct = m_app.CreateAction(_T("Goto"));
CDHwpParameterSet set = gotoAct.CreateSet();
gotoAct.GetDefault(set);
set.SetItem(_T("SetSelectionIndex"), COleVariant((long)1));
set.SetItem(_T("DialogResult"), COleVariant((long)i));
gotoAct.Execute(set);
// 빈 페이지 확인을 위해 페이지 시작 위치와 끝의 위치를 비교함
long slist = 0, spara = 0, spos = 0;
long elist = 0, epara = 0, epos = 0;
m_app.Run(_T("MovePageEnd"));
m_app.GetPos(&elist, &epara, &epos);
m_app.Run(_T("MovePageBegin"));
m_app.GetPos(&slist, &spara, &spos);
if (slist == elist && spara == epara && spos == epos) {
m_app.Run(_T("DeleteBack"));
m_app.Run(_T("DeleteBack"));
}
}
}
안되는 사항이 있으면 문의 남겨주세요.
감사합니다.