본문 바로가기

728x90

파이썬-아래아한글 자동화 기초

한/글 메서드별 인자 확인하는 방법(feat. ipython) FileName 과 filename 사이에서 고민하고 있는 "회사원코딩"의 수강생입니다. ^^; 다음 내용을 좀 더 상세히 알 수 있을까요? 어떻게 docstring을 통해 대소문자 점검을 할 수 있는지? 미리 어떤 인자가 파라미터로 사용할 수 있는지? 알수 있는 방법에 대해 조언 부탁드립니다. """ API문서를 한/글2010 이후로 10년간 업데이트하지 않았기 때문이기도 하고, 또다른 이유로 win32의 MakePy문제로 일부 메서드의 파라미터는 한/글 내부 스크립트와 대소문자에 차이가 생긴다. FileName이 파이썬에서는 filename으로 바뀐다든지 하는 식이다. 다행히 이런 경우는 "어느 파라미터가 존재하지 않는다"는 오류메시지가 나오고, docstring을 통해 대소문자 점검을 해 주면 된다.. 더보기
커뮤니티질문 : GetText()에서 표, 글상자에서 텍스트 읽어오기? HwpCtrl.InitScan(0, 2); alert(HwpCtrl.GetText()); HwpCtrl.ReleaseScan(); 위 코드 내용은 한컴설명서에 있는 내용 입니다. 그런데 저렇게 하면 표, 글상자에 있는 내용은 읽어 오기 못 합니다. 특정 문단에 있는 내용을 읽어 싶은데 일반 글자는 읽어 오는데 표, 글상자에 있는 내용은 읽어오지 못 합니다. 고수님들 조언을 부탁 합니다. https://www.hancom.com/board/devcommView.do?board_seq=48&artcl_seq=10844&pageInfo.page=&search_text= www.hancom.com API매뉴얼에 씌어있는 파라미터(대부분 숫자)들은, 신기하게도 조합이 가능하며 (파이썬의 경우) 조합하는 방법은 일.. 더보기
hwp.GetFieldList() # 필드를 다룰 때 꼭 알아야 하는 메서드 응용편에서 튜토리얼을 진행하는 중에 기본 메서드를 자세하게 다루다 보면 의식의 흐름이 툭툭 끊길 수 있어, 이런 식으로 메서드 설명을 기본편에 하나씩 써놓고 참고링크를 달아놓으려고 한다. 1. hwp.GetFieldList() 란? hwp.GetFieldList()는 한/글 컨트롤 오브젝트(HwpCtrl Object)의 메서드 중 하나로 문서에 존재하는 필드(혹은 누름틀)의 목록을 구하는 메서드이다. 개인적으로 한/글 API가 참 친절하다고 느껴지는 부분은 매개변수 파트인데, 필드목록을 구하는 이 간단한 메서드에도 두 개 인자(number, option)에 각각 3개씩의 매개변수가 들어가 있어 누름틀을 상세하게 다룰 수 있다. 2. Number 인자 Number 인자(대소문자 구분)에 들어갈 수 있는 매.. 더보기
한/글 2020 최신 업데이트로도 고쳐지지 않은 API버그 탭을 여러 개 열어놓은 한글창에서 hwp.XHwpDocuments.Item(0).Close(isDirty=False) 명령을 실행하면, 해당아이템(첫 번째 탭)이 닫히는 게 아니라 현재 활성화된 탭이 닫힌다. 이 버그 때문에, 특정 탭을 닫고 싶을 땐 hwp.XHwpDocuments.Item(1).SetActive_XHwpDocument() # 닫고 싶은 탭을 활성화한 후에 hwp.Close(isTab=False) # 닫아야 한다. 불편할 정도는 아니지만 계속 신경쓰인다;; 더보기
문서 안의 컨트롤을 차례대로 선택하는 가장 간편한 방법 먼저, 아래아한글에서 "한글컨트롤", 혹은 "컨트롤"이라 함은, 일반적인 문자열 외에 삽입되는 그림, 표, 벡터이미지, 미주각주나 계산식 등의 "오브젝트"를 뜻하는 용어이며, API매뉴얼 예제에 컨트롤을 선택하는 예제코드가 몇 개 들어있다.정확히 의미를 몰라도 되니, 아래 코드를 가볍게 한 번 읽어보자. 1. Visual Basic으로 문서 중의 각주를 카운트하는 코드Dim ctrlcode As CtrlCode cnt = 0 Set ctrlcode = HwpCtrl.HeadCtrl While Not ctrl Is Nothing If ctrlcode.CtrlID = "fn" Then cnt = cnt + 1 End If Set ctrlcode = ctrlcode.Next Wend MsgBox cnt2. V.. 더보기

728x90