본문 바로가기
아래아한글 자동화/pyhwpx 사용법

[pyhwpx] 메모 또는 메모고침표 일괄삽입하는 예제

by 일코 2024. 2. 10.

국립국어원에서는 일본어투 생활용어와 권장표현을 정리하여
두 차례 공개한 바 있다.
(아이러니하게도 최근 공개한 자료의 용어 수가 50개로 예년의 자료에 비해 훨씬 적다.)

이제부터는 분빠이하지 말고 각자내기합시다_보도자료.hwp
0.21MB

 

위 문서를 다운받은 후 아래 코드를 실행하면
교정표 데이터프레임이 만들어진다.

import pandas as pd
from pyhwpx import Hwp


hwp = Hwp()
hwp.open("이제부터는 분빠이하지 말고 각자내기합시다_보도자료.hwp")
df = hwp.table_to_df(-1)

# 1열 제거
df.drop("", axis=1, inplace=True)

# 동일명의 칼럼끼리 병합하기
df.columns = [0, 1, 2, 3]
df1 = df[[0, 1]]
df2 = df[[2, 3]]
df1.columns = ["일본어 투 용어", "권장 표현"]
df2.columns = ["일본어 투 용어", "권장 표현"]
df = pd.concat([df1, df2], axis=0)

그리고 아래 첨부한 문서는,
일본어투 용어로 점철된 예문.
(ChatGPT가 작성해준 내용을 살짝 교정해놓았다.)

일본어투용어_예시문서.hwp
0.05MB

 

찾아바꾸기를 해버리면 어디를 바꿨는지, 기존의 용어가 뭐였는지 파악하기 어렵기 때문에
대부분 교정부호 또는 메모를 넣는 방법을 선호하는 것으로 보인다. (그런 문의가 많았다.)

위에서 미리 작성한 교정표 데이터프레임을 통해
이 문서의 일본어투 용어에 권장표현을 메모로 달아주는 코드는 아래와 같다.

hwp.open("일본어투용어_예시문서.hwp")

content = hwp.get_text_file()  # 문자열 전체를 가져와서
for idx, val in enumerate(df.일본어투용어):  # 일본어투 용어 하나씩 꺼내서
    count = content.count(val)  # 문서 안에 있는지 확인하고,
    for i in range(count):  # 있으면 전부
        hwp.find(val, "Backward")  # 찾아서
        hwp.insert_memo(df.iloc[idx].권장표현)  # 메모로 권장표현을 표시한다.

시연화면은 아래와 같다.

 

참고로 insert_memo의 두 번째 파라미터로 "revision" 문자열을 넣으면
일반 "메모" 대신 "메모고침표"가 삽입된다. (기본값은 "memo")

 

메모고침표 삽입결과

 

참고로,

메모고침표 삽입에 더하여
글자색을 빨갛게, 두껍게 및 이탤릭을 적용하고, 글자크기는 25로 변경하는 코드도 간단하다.
아래처럼 hwp.set_font() 메서드를 추가하면 된다.

content = hwp.get_text_file()
for idx, val in enumerate(df.일본어투용어):
    count = content.count(val)
    for i in range(count):
        hwp.find(val, "Backward")
        hwp.set_font(TextColor="Red", Bold=True, Italic=True, Height=25)  # <--
        hwp.insert_memo(df.iloc[idx].권장표현, "revision")

댓글