들어가며
한글 자동화를 하기 위해서는 필드의 이름 및 개수를 확인해야 할 필요가 있습니다.
이번 블로그에서는 한글 문서에 지정한
필드의 이름을 확인하는 방법에 대해 알아 보겠습니다.
GetFieldList() 함수 알아보기
먼저 한글 공식문서를 살펴보겠습니다.
한글 공식 문서 HwpAutomation.pdf 파일을 확인하시면 됩니다.
GetFieldList() 함수는
문서에 있는 필드의 리스트를 반환합니다.
인자는 두 개를 전달받습니다.
첫 번째 인자는 0 ~ 2까지이고 기본값은 0입니다.
0 : 단순히 필드의 이름을 나열합니다.
1 : 필드 이름 뒤에 일련번호가 {{#}}이 붙은 형태로 나열합니다.
2 : 필드 이름 뒤에 필드가 몇 개 있는지 {{#}}이 붙은 형태로 나열합니다.
두 번째 인자는 0, 1, 2, 4, 8을 받을 수 있고 기본값은 0입니다.
0 : 필드를 전부 나열합니다.
1 : 셀에 부여된 필드 리스트만 나열합니다.
2 : 누름틀에 부여된 필드 리스트만 나열합니다.
4 : 셀렉션 내에 존재하는 필드 리스트만 나열합니다.
8 : 글상자에 부여된 필드 리스트만 나열합니다.
코드로 살펴보기
두 번째 인자에 대해서는 별도로 코드를 작성하지 않겠습니다.
앞서 사용했던 한글 문서를 사용해 보겠습니다.
표 안에 필드 이름이 다음과 같이 지정되어 있습니다.
먼저 아래와 같이 첫 번째 인자를 생략한 코드를 작성하고
결과를 출력하면 다음과 같습니다.
field_text_list = hwp.GetFieldList()
print(field_text_list)
제품명일련번호제품명일련번호제품명일련번호제품명일련번호제품명일련번호제품명일련번호
다음은 첫 번째 인자를 1로 지정한 코드 및 결과입니다.
field_text_list = hwp.GetFieldList(1)
print(field_text_list)
제품명{{0}}일련번호{{0}}제품명{{1}}일련번호{{1}}제품명{{2}}일련번호{{2}}제품명{{3}}일련번호{{3}}제품명{{4}}일련번호{{4}}제품명{{5}}일련번호{{5}}
마지막으로 첫 번째 인자를 2로 지정한 코드 및 결과입니다.
field_text_list = hwp.GetFieldList(2)
print(field_text_list)
제품명{{6}}일련번호{{6}}
필드를 이름별로 보기 좋게 출력하기
위와 같은 방식으로 출력하면 눈으로 보기가 쉽지 않습니다.
리스트를 구분해서 보려면 다음과 같이 코드를 작성하고 출력하면 됩니다.
field_text_list = hwp.GetFieldList(1)
fields = field_text_list.split("\x02")
for field in fields:
print(field)
제품명{{0}}
일련번호{{0}}
제품명{{1}}
일련번호{{1}}
제품명{{2}}
일련번호{{2}}
제품명{{3}}
일련번호{{3}}
제품명{{4}}
일련번호{{4}}
제품명{{5}}
일련번호{{5}}
split() 함수를 통해 나누면 되는데
\x02를 기준으로 나누었습니다.
\x02는 눈에 보이지 않지만, 필드 이름뒤에 항상 붙어 있습니다.
확인하려면 repr() 함수를 사용해 확인이 가능합니다.
field_text_list = hwp.GetFieldList(1)
print(repr(field_text_list))
'제품명{{0}}\x02일련번호{{0}}\x02제품명{{1}}\x02일련번호{{1}}\x02제품명{{2}}\x02일련번호{{2}}\x02제품명{{3}}\x02일련번호{{3}}\x02제품명{{4}}\x02일련번호{{4}}\x02제품명{{5}}\x02일련번호{{5}}'
마치며
이번 블로그에서는 필드의 목록을 가지고 오는 방법을 확인했습니다.
필드의 이름을 가지고 올 수 있다면
코드를 좀 더 유동적으로 작성할 수 있습니다.
[ 파이썬 관련 블로그 글 목록 ]
파이썬(Python) 블로그 목록
'PYTHON 한글자동화' 카테고리의 다른 글
[ 한글 자동화 ] 한글(HWP) 문서 이동 명령어 정리: 업무 자동화의 핵심 (1) | 2025.05.26 |
---|---|
[ 한글 자동화 ] 파이썬으로 엑셀 데이터 읽고 한글 문서에 자동 입력하기 (0) | 2025.05.13 |
[ 한글 자동화 ] 한글 문서 동일한 필드 이름에 다른 값 입력하기, 필드에 값 입력하기(PutFieldText) - 세 번째 (1) | 2025.05.12 |
[ 한글 자동화 ] 한글 문서 표에 필드 이름 지정하고 값 넣기, 필드에 값 입력하기(PutFieldText) - 두 번째 (0) | 2025.05.11 |
[ 한글 자동화 ] 한글 문서에 필드 지정하고, 필드에 값 입력하기(PutFieldText)-첫번째 (1) | 2025.05.11 |