hwpx

HWPX(한글/한컴오피스) 문서를 생성, 읽기, 편집하는 스킬. .hwpx 및 .hwp 파일을 다루는 모든 작업에 사용한다. 트리거 키워드: 'hwpx', 'hwp', '한글 문서', '한글 파일', '한컴', 'Hancom', '아래아한글', '한글 워드', '한글로 만들어', 'hwp로 저장'. 사용자가 문서 출력 형식으로 HWP/HWPX를 요청하거나, 한국 정부/공공기관 제출용 문서를 요청할 때 반드시 이 스킬을 사용한다. docx 생성 요청이 아닌 한글 문서 요청은 이 스킬로 처리한다. 다른 스킬에서 HWPX 출력이 필요할 때도 이 스킬을 참조한다.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "hwpx" with this command: npx skills add ujon/skills/ujon-skills-hwpx

HWPX 문서 생성·편집·분석 스킬

개요

HWPX는 한컴오피스 한글의 개방형 문서 포맷으로, OWPML(Open Word-Processor Markup Language, KS X 6101) 표준을 따른다. ZIP 아카이브 안에 XML 파일들이 들어있어 프로그래밍적 조작이 가능하다.

이 스킬은 Python 표준 라이브러리(xml.etree, zipfile) 만으로 동작하며, 외부 의존성이 없다.

파일 포맷

포맷확장자특징
HWP (레거시).hwp바이너리 포맷, 직접 생성 어려움
HWPX (개방형).hwpxZIP + XML, 프로그래밍 생성 가능

이 스킬은 HWPX 포맷을 기본으로 사용한다. 사용자가 .hwp를 요청해도 HWPX로 생성하며, HWPX는 한컴오피스 2018 이상에서 기본 지원한다.

Quick Reference

작업방법
문서 생성scripts/hwpx_builder.pyHwpxBuilder 클래스
기존 HWPX 읽기scripts/hwpx_reader.pyHwpxReader 클래스
기존 HWPX 편집scripts/hwpx_reader.pyunpack() → 편집 → repack()
출력 위치./ (현재 프로젝트 디렉토리 기준)

스크립트 위치

skills/hwpx/scripts/
├── hwpx_builder.py    ← 문서 생성 (HwpxBuilder 클래스)
└── hwpx_reader.py     ← 문서 읽기/편집 (HwpxReader, unpack, repack)

설치 불필요. Python 3.9+ 표준 라이브러리만 사용한다.


문서 생성 — HwpxBuilder

기본 사용법

import sys; sys.path.insert(0, "skills/hwpx/scripts")
from hwpx_builder import HwpxBuilder

doc = HwpxBuilder()
doc.add_heading("문서 제목", level=1)
doc.add_paragraph("본문 텍스트입니다.")
doc.add_table([
    ["항목", "내용", "비고"],
    ["첫 번째", "값", "정상"],
])
doc.save("./문서.hwpx")

API

메서드설명
add_heading(text, level=1)제목 추가 (level 1~3)
add_paragraph(text, char_style=0, para_style=0)문단 추가
add_empty_line()빈 줄
add_table(rows, header=True)테이블 (첫 행 헤더)
add_multi_run([(text, char_style), ...], para_style=0)한 문단 여러 스타일
add_raw_xml(xml)section0.xml에 직접 XML 삽입
add_char_style(id, font_size_pt, bold, italic, underline, color, font_index)글자 스타일 정의
add_para_style(id, align, line_spacing, spacing_before, spacing_after, margin_left, indent)문단 스타일 정의
save(path)HWPX 저장 (디렉토리 자동 생성)

빌트인 스타일

글자 스타일 (charPr)

id설명크기속성
0본문11pt-
1제목118ptBold
2제목214ptBold
3제목312ptBold
4테이블 헤더11ptBold

문단 스타일 (paraPr)

id설명정렬줄간격
0본문LEFT160%
1제목1CENTER160%
2제목2LEFT160%
3제목3LEFT160%

커스텀 스타일 추가

doc = HwpxBuilder()

# 빨간 볼드 14pt, 가운데 정렬
doc.add_char_style(id=10, font_size_pt=14, bold=True, color="FF0000")
doc.add_para_style(id=10, align="CENTER", line_spacing=180)

doc.add_paragraph("커스텀 스타일 텍스트", char_style=10, para_style=10)

페이지 설정

# 기본값: A4, 여백 약 2.54cm
doc = HwpxBuilder(
    page_width=59528,     # A4 (HU)
    page_height=84188,
    margin_left=8504,
    margin_right=8504,
    margin_top=5668,
    margin_bottom=4252,
)

# 글꼴 변경
doc = HwpxBuilder(fonts=["나눔고딕", "맑은 고딕"])

복합 문서 예시

import sys; sys.path.insert(0, "skills/hwpx/scripts")
from hwpx_builder import HwpxBuilder

doc = HwpxBuilder()

# 커스텀 스타일: 파란 소제목
doc.add_char_style(id=10, font_size_pt=13, bold=True, color="2E5A88")
doc.add_para_style(id=10, spacing_before=200, spacing_after=100)

# 헤더
doc.add_heading("연 구 노 트", level=1)
doc.add_empty_line()

# 기본 정보 테이블
doc.add_table([
    ["과제명", "AI 기반 스마트 제조 최적화"],
    ["기록자", "홍길동"],
    ["작성일자", "2026-03-13"],
], header=False)
doc.add_empty_line()

# 본문 섹션
doc.add_paragraph("1. 연구 목적", char_style=10, para_style=10)
doc.add_paragraph("본 연구는 제조 공정의 불량률을 감소시키기 위해...")
doc.add_empty_line()

# 한 문단에 볼드 + 일반 텍스트 혼합
doc.add_multi_run([
    ("결과: ", 4),     # 볼드
    ("정상 동작 확인", 0),  # 일반
])

doc.save("./연구노트_2026-03-13.hwpx")

문서 읽기 — HwpxReader

import sys; sys.path.insert(0, "skills/hwpx/scripts")
from hwpx_reader import HwpxReader

reader = HwpxReader("./문서.hwpx")

# 텍스트 추출
print(reader.extract_text())

# ZIP 내 파일 목록
print(reader.list_files())

# XML 직접 확인
print(reader.get_xml("Contents/section0.xml"))

# 스타일 정보
print(reader.get_styles())

CLI

python skills/hwpx/scripts/hwpx_reader.py read document.hwpx

문서 편집 — unpack/repack

기존 HWPX 파일을 수정할 때는 unpack → 편집 → repack 패턴을 사용한다.

Python

import sys; sys.path.insert(0, "skills/hwpx/scripts")
from hwpx_reader import unpack, repack

# 1. 풀기 (linesegarray 자동 제거)
unpack("document.hwpx", "./tmp_edit")

# 2. XML 편집 (예: section0.xml 수정)
with open("./tmp_edit/Contents/section0.xml", "r") as f:
    xml = f.read()
xml = xml.replace("이전 텍스트", "새 텍스트")
with open("./tmp_edit/Contents/section0.xml", "w") as f:
    f.write(xml)

# 3. 재패키징
repack("./tmp_edit", "./edited.hwpx")

CLI

# 풀기
python skills/hwpx/scripts/hwpx_reader.py unpack document.hwpx ./tmp_edit

# ... XML 편집 ...

# 재패키징
python skills/hwpx/scripts/hwpx_reader.py repack ./tmp_edit ./edited.hwpx

주의: 편집 시 linesegarray 요소가 있으면 unpack()이 자동 제거한다. 레이아웃 캐시로 내용 변경 시 꼬임을 유발하기 때문이다.


OWPML 단위 체계

단위변환
1 HU1/7200 인치
1cm2835 HU
1pt (글자)charSz val = pt × 200
A459528 × 84188 HU

HwpxBuilder에서 상수로 제공: A4_WIDTH, A4_HEIGHT, HU_PER_CM, HU_PER_PT


다른 스킬과의 연동

이 스킬은 범용 HWPX 빌더로, 어떤 스킬에서든 HWPX 출력이 필요할 때 사용할 수 있다.

연동 패턴:

import sys; sys.path.insert(0, "skills/hwpx/scripts")
from hwpx_builder import HwpxBuilder

doc = HwpxBuilder()
# ... 호출 스킬의 구조에 맞게 빌드 ...
doc.save("./문서.hwpx")
  • docx 스킬: MS Word 문서 생성 → 해외/국제 표준
  • hwpx 스킬: 한컴 한글 문서 생성 → 한국 정부/공공기관 표준
  • 사용자가 "한글로", "hwp로", "한컴으로" 등 명시하면 hwpx 스킬 사용
  • 별도 지정 없으면 docx가 기본값 (호환성 우선)

주의사항

  • HWPX는 한컴오피스 2018+ 에서 기본 지원. 이전 버전 사용자에게는 호환성 안내 필요
  • mimetype 파일은 반드시 ZIP 내 첫 번째이며 비압축이어야 한다 → HwpxBuilder가 자동 처리
  • OWPML 네임스페이스를 정확히 지켜야 한다 → HwpxBuilder가 자동 처리
  • 편집 시 linesegarray 제거 필수 → unpack()이 자동 처리
  • 생성된 파일은 ./ (현재 디렉토리)에 저장
  • 상세 OWPML XML 구조는 references/owpml-reference.md 참조

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

kotlin-springboot-hexagonal

No summary provided by upstream source.

Repository SourceNeeds Review
Research

k-research-note

No summary provided by upstream source.

Repository SourceNeeds Review
General

OpenClaw Skill Growth

Make OpenClaw Skills observable, diagnosable, and safely improvable over time. Use this when the user wants to maintain many SKILL.md files, inspect repeated...

Registry SourceRecently Updated
00Profile unavailable
General

Find Skills for ClawHub

Search for and discover OpenClaw skills from ClawHub (the official skill registry). Activate when user asks about finding skills, installing skills, or wants...

Registry SourceRecently Updated
2831Profile unavailable