用途
docx 是一个用于生成和编辑 Word 文档(.docx)的技能,支持制作专业文档,包括封面、图表、修订编辑等,适用于任何 .docx 文档场景。
主要能力
- 生成和编辑 Word 文档(.docx)。
- 支持专业文档元素:封面、图表、修订编辑(Track Changes)、批注等。
- 保留源文档格式:编辑现有文档时克隆并修改,而非重新创建。
- 支持模板填充:当提供模板时,作为表单填写者而非设计者,替换占位符而不重新设计。
- 无模板时作为设计者,根据场景自由设计。
- 支持 .doc 旧格式转换:先用 libreoffice --headless --convert-to docx 转换。
- 提供图表选择策略:默认使用 Word 原生图表(可编辑、文件小),热力图、3D、雷达图等使用 matplotlib。
- 提供背景生成脚本:Morandi 风格背景、水墨风格背景。
- 提供验证工具:OpenXML 验证器、业务规则验证脚本、XML 元素顺序自动修复脚本。
使用方式
环境初始化
首次在 SKILL 目录执行:
cd /app/.kimi/skills/kimi-docx/
./scripts/docx init
固定路径约定
/app/.kimi/skills/kimi-docx/:SKILL 目录,命令执行位置。/tmp/docx-work/:工作目录,在此编辑 Program.cs。/mnt/okcomputer/output/:输出目录,最终交付物。/mnt/okcomputer/upload/:用户上传位置(输入文件)。
脚本命令
./scripts/docx <cmd>:
env:显示环境状态(不做更改)。init:安装依赖 + 设置工作区。build [out]:编译、运行、验证(默认输出 output/output.docx)。validate FILE:验证现有 docx。
创建新文档
使用 C# SDK,通过 ./scripts/docx build 构建。参考 Example.cs 了解模式,CJKExample.cs 了解中文内容处理。
Program.cs 必须从命令行参数获取输出路径:
string outputFile = args.Length > 0 ? args[0] : "/mnt/okcomputer/output/output.docx";
编辑现有文档
使用 Python + lxml,参考 references/EditingGuide.md 获取完整教程。
注意:不要混用这两种方式。C# SDK 用于创建,Python 用于编辑。切勿使用 python-docx/docx-js 作为回退方案。
构建流程
必须使用 ./scripts/docx build,不要单独执行 dotnet build && dotnet run(会跳过验证)。流程包括:编译、生成、自动修复 XML 元素顺序、OpenXML 验证(强制)、业务规则验证(强制)、统计(可选)。
内容验证
pandoc 是内容真实性的来源。交付前用 pandoc 验证:
pandoc output.docx -t plain:检查文本完整性。- 修订/批注:添加
--track-changes=all验证标记位置。
适用场景
- 创建各类专业 Word 文档:提案、报告、财务文件、投标书、合同、邀请函、贺卡等。
- 编辑现有文档并保留格式。
- 模板填充。
- 需要批注、修订编辑的文档。
- 需要封面、目录、图表、页眉页脚、脚注、背景等专业元素的文档。
- 学术、法律、数据分析等需要引用和脚注的场景。
限制
- 水印、文档保护、邮件合并字段仅在用户明确要求时使用。
- 水印存在 SDK 限制:VML 水印类无法正确序列化,必须向页眉写入原始 XML。
- Word 使用流式布局而非固定页面,分页需通过属性控制。
- 原生图表不支持热力图、3D、雷达图、复杂统计图(如箱线图),这些需使用 matplotlib。
- 具体收费、价格、平台信息暂未提供。