核心用法
docx-cn 是一套完整的 Word 文档处理技能,分为两大工作模式:
1. 创建新文档(docx-js)
使用 Node.js 的 docx 库生成 .docx 文件,支持:
- 精准格式控制:显式设置页面尺寸(US Letter 12240×15840 DXA 或 A4),避免默认 A4 导致的兼容性问题
- 专业排版:通过覆盖内置样式(Heading1/Heading2)实现自定义标题层级,支持目录自动生成
- 复杂表格:强制使用 DXA 单位(禁用百分比),需同时设置
columnWidths和单元格width,确保 Google Docs 等平台的兼容性 - 图片插入:必须指定
type参数(png/jpg 等),支持尺寸变换与无障碍文本 - 修订追踪:通过
Paragraph包裹PageBreak,避免无效 XML
2. 编辑现有文档(解包-编辑-打包)
采用「解包 → XML 编辑 → 打包」三步骤:
- 解包:
unpack.py提取 XML、合并相邻文本运行、转换智能引号为 XML 实体 - 编辑:直接修改
word/document.xml,支持修订标记(<w:ins>/<w:del>)、评论添加、图片嵌入 - 打包:
pack.py验证并修复常见问题(如durableId溢出、xml:space缺失),生成最终文档
显著优点
- 技术深度:覆盖 docx 格式底层 XML 结构,支持细粒度控制(如 RSID 管理、关系文件维护)
- 跨平台兼容:针对 Google Docs、LibreOffice 等常见平台的渲染差异提供规避方案
- 修订追踪完整:支持多作者协作场景,可接受/拒绝他人修订,正确处理段落级删除
- 自动化工具链:Python 脚本封装复杂操作(解包、验证、评论管理),降低手工 XML 编辑错误率
潜在缺点与局限性
- 学习曲线陡峭:需理解 Office Open XML 规范(OOXML),包括 DXA/EMU 单位换算、元素顺序约束等
- 工具链依赖重:需同时配置 Node.js、Python、LibreOffice、Poppler 等环境
- 手动编辑风险:XML 编辑错误可能导致文档损坏,虽有自动修复但无法覆盖所有 schema 违规
- Legacy 格式限制:
.doc文件需先转换为.docx,无法直接编辑
适合人群
- 法务/合规团队:需批量生成带修订追踪的标准合同文本
- 出版/排版专业人员:需要精确控制页面布局、字体、目录结构的场景
- 自动化办公开发者:将文档生成集成到 CI/CD 或业务系统的工程师
- 学术/研究人员:处理带复杂表格、交叉引用、图表的大型报告
常规风险
- 格式漂移风险:不同 Word 版本(Windows/Mac/在线版)对复杂表格、文本框的渲染存在差异
- 元数据泄露:解包编辑可能暴露作者信息、修订历史,需在敏感场景下清理
docProps/core.xml - 脚本注入隐患:若用户输入直接进入 XML 内容,需防范 XXE 或恶意实体注入(本技能未显式提及输入过滤机制)
- 依赖项维护:docx-js 版本升级可能导致 API 变更,需锁定版本并验证输出