# 머리말에서 텍스트를 불러오는 방법을 알고 싶습니다.

**URL:** <https://forum.developer.hancom.com/t/topic/1452>\
**Category:** 한글 오토메이션\
**Created:** [4월 11, 2024, 8:06오전 UTC](https://forum.developer.hancom.com/t/topic/1452 "2024-04-11T08:06:33Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![ajjicamp](https://avatars.discourse-cdn.com/v4/letter/a/dec6dc/32.png) [@ajjicamp](https://forum.developer.hancom.com/u/ajjicamp)\
**Post date:** [4월 11, 2024, 8:06오전 UTC](https://forum.developer.hancom.com/t/topic/1452/1 "2024-04-11T08:06:33Z")

</div>

안녕하세요 머리말의 텍스트를 추출하려고 하는데 GetText를 사용하니 문서전체의 텍스트가 출력되네요. 머리말 부문만 추출하는 방법은 없을까요.

---

<div class="post-metadata">

**Author:** ![bhjung](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.developer.hancom.com/bhjung/32/259_2.png) [@bhjung](https://forum.developer.hancom.com/u/bhjung)\
**Post date:** [4월 11, 2024, 9:22오전 UTC](https://forum.developer.hancom.com/t/topic/1452/2 "2024-04-11T09:22:16Z")

</div>

![image](https://us1.discourse-cdn.com/flex016/uploads/hancom_dev_forum/original/1X/b1e3f8a2d856551bf7fe57984a7c46bbbfd43fb2.png)

머리말에서 텍스트만 추출하는 예제 코드 전달드립니다.

한글 스크립트로 작성하였습니다. 참고부탁드립니다 ^^

```auto
function OnScriptMacro_script1()
{
	FindCtrl();
	HAction.Run("HeaderFooterModify");
	HAction.Run("SelectAll");

	var text = GetTextFile("TEXT","saveblock");
	
	var msgbox = XHwpMessageBox;
	msgbox.String = text;
	msgbox.DoModal();
}

```

---

<div class="post-metadata">

**Author:** ![ajjicamp](https://avatars.discourse-cdn.com/v4/letter/a/dec6dc/32.png) [@ajjicamp](https://forum.developer.hancom.com/u/ajjicamp)\
**Post date:** [4월 11, 2024, 1:48오후 UTC](https://forum.developer.hancom.com/t/topic/1452/3 "2024-04-11T13:48:28Z")

</div>

감사하게도 빨리 답변 주셨네요.  
참고로 저는 한글 2014를 사용하고 파이쎤으로 작업을 해보았는데 실행해보니 엉뚱한 데이터가 얻어집니다.  
엉뚱한 데이터란 머리말이 아니고 본문에 있는 표 중에서 4번째표의 A5셀값이 얻어집니다.  
action을 관찰해보니 hwp파일을 로드할때 커서가 있던 Cell에서 블럭을 설정하고 텍스트를 얻는 것 같고 hwp.HAction.Run(“HeaderFooterModify”)는 에러가 나서 아래와 같이 수정해서 해봤는데 그 명령은 먹지 않는 거 같네요.  
수고스럽지만 다시 한번 살펴봐 주시겠습니까

\<코드\>  
import win32com.client as win32  
hwp = win32.gencache.EnsureDispatch(“hwpframe.hwpobject”)  
hwp.XHwpWindows.Item(0).Visible = True  
hwp.RegisterModule(“FilePathCheckDLL”, “FilePathCheckerModule”)  
path = ‘c:\xx.hwp’ # 개인정보라서 참고로 표기  
hwp.Open(path)  
hwp.FindCtrl()

에러 남 hwp.HAction.Run(“HeaderFooterModify”)  
아래와 같이 수정 hwp.HAction.Run(“SelectAll”)

hwp.Run(“HeaderFooterModify”) # 에러는 나지 않지만 명령이 먹히지 않음.  
hwp.Run(“SelectAll”)

text = hwp.GetTextFile(“TEXT”,“saveblock”)

print(text)

---

<div class="post-metadata">

**Author:** ![bhjung](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.developer.hancom.com/bhjung/32/259_2.png) [@bhjung](https://forum.developer.hancom.com/u/bhjung)\
**Post date:** [4월 12, 2024, 4:42오전 UTC](https://forum.developer.hancom.com/t/topic/1452/4 "2024-04-12T04:42:49Z")

</div>

안녕하세요 ^^  
커서가 머리말 컨트롤로 가있어야 하네요 ㅠ …  
아래는 컨트롤의 코드이지만 오토메이션도 비슷하게 사용이 가능합니다 ^^  
컨트롤코드를 가져와 해당 컨트롤 ID "head"를 체크하여 그위치로 이동후 가이드 대로 동작시키면 될것 같습니다.  
감사합니다.

```auto
	DHwpCtrlCode code = m_cHwpCtrl.GetHeadCtrl();
	DHwpParameterSet paramSet;
	VARIANT list, para, pos;
	while (code && code != m_cHwpCtrl.GetLastCtrl()) {
		CString strID = code.GetCtrlid();
		if (strcmp(strID, _T("head")) == 0) {
			paramSet = code.GetAnchorPos(0);
			list = paramSet.Item("List");
			para = paramSet.Item("Para");
			pos = paramSet.Item("Pos");

			m_cHwpCtrl.SetPos(list.lVal, para.lVal, pos.lVal);
			break;
		}
		code = code.GetNext();
	}

```

---

<div class="post-metadata">

**Author:** ![ajjicamp](https://avatars.discourse-cdn.com/v4/letter/a/dec6dc/32.png) [@ajjicamp](https://forum.developer.hancom.com/u/ajjicamp)\
**Post date:** [4월 15, 2024, 12:15오전 UTC](https://forum.developer.hancom.com/t/topic/1452/5 "2024-04-15T00:15:07Z")

</div>

늦었지만 답변에 감사드리고 보내주신 제안으로 해결을 시도하였으나 아직 한글 api가 익숙치 않아 이해하지 못한 때문인지 잘 안되었고요, 다른 방법으로 해결하였습니다.  
해결한 방법은 head 컨트롤을 찾아서 GetText로 검색하면서 조건문을 사용하여 반환값 중 4번(제어문자로 들어감)과 5번(제어문자를 빠져나옴) 사이의 텍스트만 추출하였더니 성공하였습니다. 참고하십시오.  
어찌 됐던 보내주신 제안에는 감사드립니다.

---

<div class="post-metadata">

**Author:** ![bhjung](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.developer.hancom.com/bhjung/32/259_2.png) [@bhjung](https://forum.developer.hancom.com/u/bhjung)\
**Post date:** [4월 15, 2024, 1:30오전 UTC](https://forum.developer.hancom.com/t/topic/1452/6 "2024-04-15T01:30:43Z")

</div>

해결하셨다고 하니 다행이네요 ~!

좋은 하루 보내세요 🙂
