hwp + python

star_is_mine·2023년 1월 4일
0

'누름틀 필드' 와 '셀 필드'

  • 결론 : 누름틀 필드와 셀 필드는 서로 다르다.
  • 셀 필드는 표 안에 데이터 삽입시 사용합니다.
  • 누름틀 필드는 일반 문서의 내용을 삽입할 때 사용합니다.

참조한 문서 링크

  • 우리는 먼저 셀 필드에 대해서 알아보자.

셀 필드

  • 위와 같이 표 안에 데이터를 입력할 때 사용하는 것이 '셀 필드' 입니다.

  • 표/셀 속성 으로 들어갑니다. 단축키 : Ctrl-N-K

  • 셀 탭으로 이동합니다. 이후 맨 아래의 '필드 이름' 을 지정합니다. 이후 이것을 '주소'처럼 사용할 것입니다.
import win32com.client as win32

hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject")
hwp.XHwpWindows.Item(0).Visible = True
hwp.RegisterModule("FilePathCheckDLL", "FilePathCheckerModule")
hwp.Open(r"C:\Users\smj02\Desktop\셀필드.hwp")

# 첫 번째 파라미터는 필드명, 두 번째 파라미터는 입력할 값
hwp.PutFieldText("이름", "홍길순")
hwp.PutFieldText("성별", "여")
hwp.PutFieldText("생일", "1443. 10. 31.")
hwp.PutFieldText("취미", "호부호형")
  • 위와 같이 PutFieldText 메서드를 이용하여 셀필드를 사용합니다.

  • 위 코드 수행 결과입니다.

엑셀에서 값을 가져와서 한/글 문서의 필드에 일괄입력하는 방법

참조한 링크

필드 이름 불러오기

  • hwp.GetFieldList()

참고로 괄호 안에 Number와 option, 두 개의 인자가 동시에 들어갈 수 있습니다.

<Number>
0: 아무 기호 없이 순서대로 필드의 이름을 나열(기본값)
1: 필드 이름 뒤에 일련번호가 {{#}}과 같은 형식으로 붙음
2: 필드 이름 뒤에 해당필드의 갯수가 {{#}}과 같은 형식으로 붙음

<option>
0 문서 내의 모든 필드 리스트를 구함
1 셀에 부여된 필드 리스트만 구함
2 누름틀에 부여된 필드 리스트만 구함
5 선택범위 안에 존재하는 셀 필드 리스트만 구함
6 선택범위 안에 존재하는 누름틀 필드 리스트만 구함


가장 많이 사용되는 인자와 파라미터는 hwp.GetFieldList(Number=1)이며,
이는 hwp.GetFieldList(1)로 단축하여 입력 가능합니다.

필드 값 불러오기

  • hwp.GetFieldText(필드명)

  • 동일한 이름의 필드가 존재할 경우에는 필드명 뒤에 {{인덱스}}를 넣어야 합니다.

명령어

hwp + python 권한승인 창 해제

한/글 오토메이션용 보안승인모듈 파일 다운로드 링크

  • 파일 다운로드 하세요.

  • 압축을 해제하면 위와 같은 파일들이 나옵니다.

  • 압축해제한 결과물 파일들을 한글과컴퓨터가 설치된 폴더에 이동시켜주세요. (사실 아무곳에나 두어도 무방하지만. 관리상 해당 폴더로 이동하도록 합니다.)

  • cmd -> regedit 실행

  • 컴퓨터\HKEY_CURRENT_USER\SOFTWARE\HNC\HwpAutomation\Modules 경로로 이동

  • 새로만들기 -> 문자열 값(S) 생성

  • '값 이름'과 '값 데이터'를 지정해주세요.
  • 값 이름을 지정해주세요. (아무렇게나 정해도 무방) 값 데이터는 압축을 해제한 파일들 중 FilePathCheckerModuleExample.dll 파일의 경로를 지정해주세요.
  • (주의) 값 데이터 지정시 파일위치 경로에 맨 앞과 뒤에 붙어있는 " 따옴표는 제거해야 합니다.
  • it's Done!!! 마무리 되었습니다. 이제 사용하면 됩니다.
import win32com.client as win32


hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject")
hwp.RegisterModule("FilePathCheckDLL", "HwpSecurityDllFilePathChecker")
hwp.XHwpWindows.Item(0).Visible = True

hwp.Open(r"C:\Users\y\Desktop\한글 자동작성 프로그램\(개발중) 문서 자동작성\테스트문서초안입니다.hwp")
  • 위 코드에서 핵심은 hwp.RegisterModule("FilePathCheckDLL", "HwpSecurityDllFilePathChecker") 입니다.

"HwpSecurityDllFilePathChecker" 는 우리가 레지스트리에서 지정한 값 이름에 해당합니다.

이제 더이상 경고 팝업창이 뜨지 않는 것을 확인할 수 있습니다.

참조한 글 링크

https://employeecoding.tistory.com/67

동영상 설명 참조

https://www.youtube.com/watch?v=2Cv16_ZO5rk

profile
i have a dream and I will make my dreams come true.

0개의 댓글