Word格式刷
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_281d3505/z-docx-format-brush。
技能介绍
为什么需要这个技能
从 Markdown 经 pandoc 转换得到的 docx,或者由不同大模型生成的文档,往往会出现一个共同问题:内容正确,格式混乱。字体可能在不同段落间漂移,标题带默认主题蓝,表格没有边框,中文引号开闭反向。手工用 Word 的格式刷逐段修改既慢又不可靠,脚本化处理时又常常因为只读样式表而刷错——中文公文类文档的字体参数往往直接写在 run 层,样式表里只是默认值。
核心工作方式
Word格式刷的做法是:先从模板 docx 中实测出格式指纹,再把这套指纹应用到目标文件上,所有格式参数收敛到唯一的应用出口。
工作流程分三步:
- 解剖模板:输出模板的格式指纹(JSON + 可读摘要)。涵盖 Normal、Heading 1-3 等样式的字体与字号,正文行距、首行缩进和对齐分布(取众数),封面段落结构,表格边框,以及章节标题是否分页。关键在于实测而非只读样式表,因为模板作者常在 run 层覆盖样式。
- 诊断目标:对比两份指纹,列出病灶清单,如 run 字体字号为
None、标题带主题蓝、表格无tblBorders、章节不分页、引号方向错误。 - 应用修复:按五层顺序应用——样式层兜底、段落层统一、封面层重做、表格层补边框、文字层修正引号。顺序重要,样式层先兜住继承,run 层再精确覆盖。
关键技术要点
处理 docx 时有几个容易踩的坑:中文字体要设两遍,run.font.name 只管西文,必须再设 rPr.rFonts 的 w:eastAsia;字号在内部是 EMU 单位,磅 = EMU / 12700;清除颜色不能只设 None,要从 rPr 中 remove w:color 元素。新建文档场景下,建议写 title()/para() 工厂函数把指纹参数硬编码进去,不要逐段设置格式。
适用边界
该技能以模板为格式基准,目标文档的内容结构不会被改变。适用于三种场景:修复格式混乱的已有文档、从零生成但要求与模板格式一致的新文档、以及只想知道两份 docx 格式差异在哪的诊断场景。完成修复后应通过验证:run 字体分布收敛、表格有边框、章节分页正确、引号方向无误。
使用场景
- 用 pandoc 把多篇 Markdown 合并成一份 docx 后,需要按公司公文模板统一标题字体、正文缩进和表格边框。
- 从零编写项目结题报告 docx,要求封面、章节分页和正文行距与往期模板完全一致,不手工逐段调整。
- 收到外部团队传来的方案文档,内容可用但字体混排、引号方向错误、章节没有分页,需要批量修复。
- 对比两份 docx 的格式差异,确认哪些段落在 run 层覆盖了样式表定义,定位模板与产出不一致的原因。
适合人员
- 经常用 pandoc 批量生成技术文档的工程师,需要修复转换后字体混排和样式丢失问题。
- 负责撰写和校对公司公文的行政人员,要求文档格式严格符合模板规范且无需手动逐段调整。
- 用大模型生成报告初稿的团队,需要将生成结果从混乱的默认格式刷成正式模板格式。
- 维护文档生成流水线的开发者,需要在自动化流程中统一 docx 输出的字体、分页和表格样式。