본문 바로가기
아래아한글 자동화/python+hwp 중급

[QnA] 참조조항번호를 일괄변경하는 간단한 방법

by 일코 2023. 4. 25.
안녕하세요
혹시 영향 있는 조항도 따라서 잡아주나요?
제 1조
1항 : ㄱㄴㄷ
2항 : ㄹㄹㄹ
제 2조
1항 : 제1조 2항에 의해 ㅇㅇ한다

에서 제1조 2항이 사라지면

제2조
1항 : 제1조1항에 의해 ㅇㅇ한다
로 자동으로 바뀌게도 가능한걸까요?

가능합니다.

아래처럼 누름틀을 매겨두고 
간단한 함수를 실행하면
의도하시는 액션을 구현할 수 있겠습니다.
(엄밀히 말해, "실시간 완전자동"은 아니에요ㅎㅎ)

예를 들어 아래와 같은 문서가 있다고 가정합시다.

제3조제1항 안의 붉은색 숫자 두 개는 제2조제1항제2호를 참고하고 있는데요.
네 개의 붉은색 글자 안에 모두 누름틀이 매겨져 있습니다.

위에서부터 차례대로
"정의_src", "건축물_src", "정의_dst", "건축물_dst"라는 누름틀을 임의로 매겨놓았습니다.

이 상태에서 제1조와, 제2조제1항제1호를 임의로 삭제하고, 조항번호를 다시 정렬합니다.
(조항번호를 자동으로 재정렬하는 포스팅은 예전에 짧게 남긴 적이 있습니다.)

이 상태에서 아래 함수를 실행하면

def 참조조항_갱신():
    hwp.PutFieldText("정의_dst", hwp.GetFieldText("정의_src"))
    hwp.PutFieldText("건축물_dst", hwp.GetFieldText("건축물_src"))
    # hwp.PutFieldText("공공_dst", hwp.GetFieldText("공공_src"))
    # hwp.PutFieldText("복리_dst", hwp.GetFieldText("복리_src"))
    # hwp.PutFieldText("증진_dst", hwp.GetFieldText("증진_src"))

참조조항의 번호가 갱신됩니다.

 

아래는 전체 시연화면입니다.

비록, 출처조항번호와 참조조항번호에 누름틀을 일일이 매겨야 하고,
①②③ 등의 원문자는 replace 메서드를 통해 숫자로 변환해야 하는 번거로움이 있지만,
조항 추가 및 삭제가 아주 잦고, 참조하는 조항이 수두룩한 경우에는
위 함수를 활용/응용해서 업무를 간편화할 수도 있겠습니다.

 

마지막으로
위 함수에 사용된 메서드를 간략히 설명드리면,

hwp.PutFieldText("누름틀이름", "삽입할텍스트")
"누름틀이름"이라는 누름틀 안에다 "삽입할텍스트"를 삽입합니다. (간단하죠?ㅎ)

hwp.GetFieldText("누름틀이름")
"누름틀이름"이라는 누름틀 안에 들어있는 문자열을 리턴합니다. (역시 간단하죠?ㅎ)

추가로 궁금하신 사항이 있으면 댓글로 남겨주세요.

행복한 하루 되시길 바랍니다^^

댓글