用途:在 Claude Code 等环境中处理 한글(Hancom Office) 的 HWPX 文档,覆盖生成、读取、编辑三大类需求。HWPX 是 ZIP 容器内的 XML(OWPML 标准),该技能以直接编写 XML 为核心,绕开 python-hwpx API 的格式问题,实现更细致的排版控制。
主要能力:提供 build_hwpx.py(模板 + XML → .hwpx)、analyze_template.py(对参考文档做深度分析,输出字体、borderFill、charPr、paraPr、文档结构、正文与表格细节)、office/unpack.py 与 office/pack.py(HWPX ↔ 目录)、validate.py(校验 ZIP 有效性、必需文件、mimetype 内容/位置/压缩方式及 XML well-formedness)、text_extract.py(提取纯文本、含表格或 Markdown)。内置 base、gonmun(공문)、report、minutes、proposal 五套模板及对应样式 ID 表。
使用方式:先激活项目 .venv(需 pip install lxml),再调用脚本。生成空文档:python3 "$SKILL_DIR/scripts/build_hwpx.py" --output result.hwpx;用模板:--template gonmun;自定义正文:--section my_section0.xml;同时覆盖 header:--header my_header.xml,并可用 --title、--creator 设置元数据。编辑流程为 unpack → 改 section0.xml/header.xml → pack → validate。参考复刻流程为 analyze_template.py 分析并提取 header/section,再按同款 charPrIDRef/paraPrIDRef 与表格结构编写新 section0.xml 后构建。
约束与限制:仅支持 HWPX,不支持 .hwp 二进制,需先在 한글 中另存为 HWPX。section0.xml 首个段落的首个 run 必须含 secPr 与 colPr;打包时 mimetype 必须是第一个 ZIP 条目且 ZIP_STORED;保留 hp:/hs:/hh:/hc: 命名空间;header.xml 的 itemCnt 须与实际子节点数一致;ID 引用须一致;生成后须用 validate.py 验证。建议用 build_hwpx.py 而非直接调用 python-hwpx API。具体 API 收费、平台与效果等未在资料中提供。