v0.0.5 — Mail Merge + pandas + silenced()
🎯 Mail Merge · Pandas · 대화상자 자동응답
pyhwpx 비교 분석 에서 도출한 고가치 기능들을 도입한 릴리즈.
📝 Field API (Mail Merge) — 핵심 신규 기능
HWP 필드(누름틀) 를 통한 템플릿 → 대량 문서 생성.
# 1. 템플릿 준비 ({{name}}, {{date}} 등의 브래킷)
app.open(\"contract_template.hwp\")
app.replace_brackets_with_fields() # 브래킷 → 실제 HWP 필드
# 2. 값 주입
app.set_field(\"name\", \"홍길동\")
app.set_field(\"date\", \"2026-04-15\")
# 3. 확인
print(app.fields_dict) # {'name': '홍길동', 'date': '2026-04-15'}
# 4. 저장
app.save(\"out/홍길동.hwp\")신규 API 14개:
create_field / set_field / get_fieldfields·fields_dict(properties)field_exists / move_to_field / delete_field / delete_all_fields / rename_fieldreplace_brackets_with_fields()— 핵심 헬퍼
🐼 pandas 연동
# DataFrame → HWP 표
df = pd.DataFrame({...})
app.insert_table(data=df) # columns 자동으로 header
# HWP 표 → DataFrame
df = app.read_table() # DataFrame
rows = app.read_table(to=\"list\") # 2D list
csv = app.read_table(to=\"csv\") # CSV 문자열🤫 대화상자 자동응답 — app.silenced()
with app.silenced(): # YES 자동 (기본)
for path in paths:
app.open(path) # '저장하시겠습니까?' → 자동 YES
app.replace_all(\"2025\", \"2026\")
app.save(path)
with app.silenced(mode=0x00200000): # NO 자동
app.close()Context manager 종료 시 원래 모드로 자동 복원.
📖 새 튜토리얼
- Mail Merge 사용 사례: https://jundamin.github.io/hwpapi/01_tutorials/usecase_mail_merge.html
- 100개 급여명세서 일괄 생성 예제
- pandas DataFrame 연동
- 다중 문서 병렬 편집
호환성
- 100% backward compatible — 모든 기존 코드 수정 없이 동작
- 1,059 unit tests 통과
- pandas 는 optional (설치 없어도 다른 기능 정상)
Full changelog: v0.0.4...v0.0.5