这个项目能做什么
rhwp是基于Rust与WebAssembly的开源HWP/HWPX查看器兼编辑器。参考韩软(Hancom)公开文档开发,并明确声明与韩软不存在合作、赞助或认可关系,是独立项目。MIT许可证。
## 文档处理范围
解析HWP 5.0二进制(OLE2复合文件)、HWPX(基于Open XML)和HML(HWPML 2.9/2.91,仅限已验证结构的部分支持)。处理段落、表格、文本框、图片、公式、图表、页眉/页脚、背景页、脚注/尾注。
渲染支持行距、缩进、对齐、制表位,单元格合并与边框样式,单元格公式计算,多栏布局,段落编号/项目符号,竖排文字,奇偶页分离页眉,背景页,对象放置(随正文/如字符/文字前后)。公式包含分数、根号、上下标,矩阵(MATRIX/PMATRIX/BMATRIX/DMATRIX),cases,EQALIGN,PILE系列,大型运算符(INT/SUM/PROD等),REL/BUILDREL,极限,长除法,希腊字母及100余种数学符号。分页处理多栏分页、按表格行分页以及基于vpos的段落位置校正。
## 输出与渲染器后端
通过CLI导出SVG、PNG(需要native Skia功能)和PDF。PDF默认使用SVG兼容路径,提供将文本转换为矢量路径的选项和字节可重现性,native Skia直接后端为可选项。Web端使用Canvas/CanvasKit渲染,采用通用paint IR(PageRenderTree → PageLayerTree),legacy/layered SVG、Canvas2D、CanvasKit replay、native Skia后端共享相同的重放平面契约。默认请求使用Canvas2D,显式指定`?renderer=auto`时,仅在文档通过预检后才固定为CanvasKit。复杂整形字符、古韩文·PUA组合、结构排版符号显示等会将整个文档固定为Canvas2D。通过视觉回归CI验证渲染差异和PDF门禁。
## 使用途径
- Web演示(GitHub Pages),Chrome/Edge/Firefox扩展,VS Code扩展(含Open VSX)
- npm包:`@rhwp/editor`(iframe嵌入编辑器),`@rhwp/core`(WASM解析器/渲染器API)
- CLI:export-svg、export-png、export-pdf、dump、dump-pages、info、capabilities
- 内置MCP服务器:通过一行配置即可在Claude Code等MCP主机中使用hwp_info、hwp_search、hwp_fill_fields、hwp_open·hwp_doc_*会话工具
- 发布二进制文件:linux x86_64、macOS x86_64/aarch64、windows x86_64,并提供SHA256SUMS.txt
Web编辑器(rhwp-studio)提供文本编辑、格式对话框、表格编辑,以及与韩软Web起草器兼容的hwpctl API层(30个Action、ParameterSet/ParameterArray、Field API)。保存支持HWP编辑保存、HWPX/HML语义保留保存以及HWPX→HWP转换。
## 开发方式
基于Rust 1.93.1,WASM构建通过Docker重现。运行3400余个Rust测试以及studio单元/e2e/视觉回归CI。项目明确采用由人类工作负责人掌握方向与架构决策、将AI用作实现放大器的模式,并经过计划审批、代码审查和质量门禁。开发记录累积在mydocs/目录中。贡献PR以devel分支为目标,而非main分支。
评论
0 评分人数达到10人后显示
登录后参与讨论。