

项目解决什么问题
Gongwen GB/T 9704-2012 Skill 是一个面向中文正式材料的开源工具。它不只是给标题设置黑体、给正文设置仿宋,而是按照 GB/T 9704-2012 的可执行要求,处理 A4 页面、版心、标题、正文、层次、首页、机构名称、文号、署名、日期和页码等版式要素,并输出可继续编辑的 DOCX 文件。
项目适合普通报告、方案、汇报,也支持正式发文、预印红头纸套打、完整电子红头、信函、命令(令)和纪要。生成后的文档可以在 Word 或 WPS 中继续添加表格、附件、印章图片,或安排实体盖章。

GB/T 9704-2012 适用于党政机关制发公文,其他机关和单位可以参照执行。README 说明该标准在 2025 年 5 月 30 日复审后继续有效。
核心功能与使用边界
- 普通材料:默认使用
ordinary,即使提供机构名称,也不会自动生成红头。 - 正式发文:必须显式选择
formal。预印红头纸模式只为纸张已有的红头和红线预留空间,不会在 DOCX 中重复绘制。 - 电子红头:只有设置
formal --letterhead digital时,生成器才会绘制完整红头要素。 - 机构名称和文号:通过
--org与--doc-no提供。正式版式会拒绝明显不符合年份、六角括号、顺序号及“号”字规则的文号。 - 标题与目录:四级标题会写入 Word/WPS 的“标题1”至“标题4”样式及相应大纲级别,可据此插入自动目录。
- 页码:支持居中、单双页和不显示三种模式,具体参数应以项目的
SKILL.md为准。 - 附件与版记:附件可另页生成并保持正式页码连续;抄送或印发信息可锚定在最后一页版心底部。
- 人工处理:印章、签名章、附件内容和实际盖章位置仍需根据用途在 DOCX 中补充或复核。

准备项目与运行环境
先从 GitHub 项目地址 获取仓库,并进入项目根目录。生成器和校验器通过 node 执行,因此本机需要具备可用的 Node.js 环境;README 没有指定具体版本,应以仓库当前脚本和测试结果为准。
如果只想直接生成 DOCX,可以在仓库中运行脚本。如果希望 AI 编程工具自动读取这套 Skill,则可使用跨平台安装器。
macOS 与 Linux
scripts/install.sh --allWindows
.\scripts\install.ps1 -All安装器会把同一份源目录连接到各平台的用户级技能目录。Windows 默认采用复制方式,以避免符号链接权限问题。支持的平台包括 Codex、Claude Code、OpenCode、Trae Code、Trae CLI、Kimi Code CLI、Kimi Code、WorkBuddy 和 ZCode。TraeWork 使用仓库中的 dist/traework-gongwen-skill.zip 导入包。

生成第一份普通材料
项目提供了测试输入文件 tests/fixture.md。下面的命令将其转换为普通材料版式,并写入临时目录:
node scripts/generate_gongwen_docx.mjs --input tests/fixture.md --output /tmp/gongwen.docx --format ordinary --title "公文格式回归测试"主要参数含义如下:
--input:输入内容文件。--output:生成的 DOCX 路径。--format ordinary:使用普通报告、方案或汇报版式。--title:设置文档标题。
生成完成后,使用校验器检查工具能够承诺的 DOCX 结构和版式要素:
node scripts/verify_gongwen_docx.mjs --input /tmp/gongwen.docx --profile ordinary校验通过并不意味着可以跳过最终审阅。正式交付前,仍应在目标电脑的 Word 或 WPS 中打开文件,并结合实际打印条件检查换行、分页、字体、附件和盖章位置。
生成预印红头纸套打稿
如果材料需要打印到已经带有红色机关标志和红线的纸张上,应明确选择正式版式和预印红头纸模式:
node scripts/generate_gongwen_docx.mjs --input tests/fixture.md --output /tmp/formal.docx --format formal --letterhead preprinted --letterhead-reserve-mm 72 --org "示例单位文件" --doc-no "示例发〔2026〕1号" --title "公文格式回归测试"--letterhead-reserve-mm 72 表示在首页为纸张已有的红头区域预留 72 毫米。72 毫米是默认值,实际使用时应测量本单位的红头纸,并在项目支持的 37 至 130 毫米范围内调整。此模式不会在 DOCX 中重新绘制红色机关标志和红线。
随后使用对应的正式版式配置进行核验:
node scripts/verify_gongwen_docx.mjs --input /tmp/formal.docx --profile formal --letterhead preprinted生成完整电子红头
只有确实需要在 DOCX 中绘制完整红头要素时,才使用 --letterhead digital:
node scripts/generate_gongwen_docx.mjs --input tests/fixture.md --output /tmp/formal-digital.docx --format formal --letterhead digital --org "示例单位文件" --doc-no "示例发〔2026〕1号" --title "公文格式回归测试"电子红头对字体环境更敏感。红头和标题应使用目标电脑实际安装的小标宋体,正文等内容还需要标准仿宋体。生成器找不到这些字体时,会在终端警告并记录所采用的替代字体。

禁止字体替代
对于不能接受字体替代的交付场景,在生成器和校验器上同时加入 --require-standard-fonts。如果当前电脑缺少小标宋体或标准仿宋体,命令会停止并列出缺失字体,而不是继续输出替代版本。
node scripts/generate_gongwen_docx.mjs --input tests/fixture.md --output /tmp/strict.docx --format formal --letterhead digital --org "示例单位文件" --doc-no "示例发〔2026〕1号" --title "公文格式回归测试" --require-standard-fonts
node scripts/verify_gongwen_docx.mjs --input /tmp/strict.docx --profile formal --letterhead digital --require-standard-fonts目录、附件与专用格式
在 Word 或 WPS 中生成目录
生成器会把四级标题写入标准标题样式和大纲级别。打开文档后,可在 Word/WPS 中选择“引用→目录”生成或更新自动目录。是否显示第四级标题,需要在目录设置中选择。
添加附件
通过重复使用 --attachment-file,可以把多个附件另页加入文档。生成器会安排“附件”标签、第三行标题和正文,并保持正式文件的页码连续。具体输入结构应参考仓库中的 SKILL.md。
选择专用生成分支
- 信函
letter:生成指定尺寸的上下红色双线,底线位于页脚,并关闭页码。 - 命令(令)
command:落实机关标志下空二行、令号下空二行等版式要求。 - 纪要
minutes:将“出席”“请假”“列席”标签设置为黑体,人员名单设置为仿宋。
这些类型不是普通版式上的简单文字替换,而是分别进入对应的生成分支。选择前应先确认文件种类。
进阶使用建议
- 不要依据机构名称猜测红头类型。普通材料始终明确使用
ordinary,正式发文则显式使用formal。 - 先确认纸张,再设置套打留白。预印红头纸的实际尺寸可能因单位模板而异,不应机械沿用默认 72 毫米。
- 在最终编辑环境中安装并验证字体。同一字体在不同系统、Word 和 WPS 中可能采用不同名称,替代字体也可能改变字号、行距和换行。
- 利用标题样式维护长文档。不要手工模拟目录层级,应使用生成器写入的标题1至标题4样式。
- 把自动校验和人工核验结合起来。可参考仓库中的
references/gbt9704-audit-matrix.md与references/formal-checklist.md,区分可自动检查和必须人工复核的项目。 - 关注特殊排版逻辑。正式电子红头会使用显式的 28 磅版心空行控制红线下标题及机关标志到文号的距离;上行文的文号与签发人会安排在同一行。
运行项目测试
在 macOS 或 Linux 环境中,可运行仓库提供的回归测试:
tests/run_tests.sh测试覆盖居中与单双页页码生成、DOCX 包结构以及 PDF 转换验证,用于证明生成器、校验器和可打印文件链路可以运行。跨平台安装还可通过 tests/test-install.sh 在隔离环境中验证本地技能目录和 TraeWork 导入包。
结语
Gongwen Skill 把容易分散在提示词、Word 模板和临时脚本中的公文规则集中到同一套可维护流程中。最稳妥的用法是:先选择正确的普通或正式版式,再生成 DOCX、运行校验器,最后在目标 Word/WPS、字体环境和打印条件下完成人工复核。项目采用 MIT 许可,但标准文本和机关模板仍应遵循各自的权利与管理规则。
