name: word-gongwen-format description: "Word 公文格式规范化技能。将 .docx 文档按党政机关公文格式要求一键格式化:A4 页面与页边距(上3.5/下2.9/左右2.55cm)、固定行距29磅、文档网格每页22行、方正系列字体(小标宋/黑体/楷体/仿宋)的各级标题层级、正文三号仿宋配数字字母 Times New Roman、奇偶页页码(宋体四号、单数居右偶数居左空1字)。当用户提到“公文格式”“Word排版”“方正字体”“规范格式化 docx”“调整成公文格式”“红头文件格式”“标题层级字体”“设置页码奇偶页”等需求时使用此技能。" agent_created: true
将任意 .docx 文档按公文格式规范一键格式化。核心能力由 scripts/format_docx.py
实现:基于 python-docx,通过直接操作 OOXML(rFonts 的 eastAsia、docGrid、
fldSimple 页码域、evenAndOddHeaders)解决 python-docx 原生不支持中文字体、
文档网格、奇偶页页码等关键问题。
格式规范的权威来源见 references/format_spec.md,需核对具体数值时加载该文件。
脚本依赖 python-docx。使用受管理的 Python venv:
VENV_PY="C:\Users\Administrator\.workbuddy\binaries\python\envs\default\Scripts\python.exe"
若 venv 不存在或缺少 python-docx,先准备环境(仅首次):
PY="C:\Users\Administrator\.workbuddy\binaries\python\versions\3.13.12\python.exe"
VENV="C:\Users\Administrator\.workbuddy\binaries\python\envs\default"
[ -d "$VENV" ] || "$PY" -m venv "$VENV"
"$VENV\Scripts\python.exe" -m pip install --quiet python-docx
原文件名_公文格式.docx,避免覆盖原件。references/format_spec.md。SCRIPT="C:\Users\Administrator\.workbuddy\skills\word-gongwen-format\scripts\format_docx.py"
"$VENV_PY" "$SCRIPT" "<输入.docx>" "<输出.docx>"
常用选项:
- --title-paragraphs N:前 N 个非空段落作为大标题区(默认 1)。文档大标题
跨多行时按实际行数设置。
- --subtitle-paragraphs N:大标题之后、第一个一级标题之前的 N 段作为副标题
(方正楷体三号),默认 1;无副标题时设 0。
- --no-page-number:不生成奇偶页页码。
- --grid lines|snapToChars|none:文档网格类型,默认 lines(行网格,保证每页约22行)。
- --help-config:打印当前格式配置后退出,用于向用户展示将应用的规范。
| 对象 | 字体 | 字号 | 其他 |
|---|---|---|---|
| 大标题 | 方正小标宋_GBK | 二号(22pt) | 第一个非空段落 |
| 大标题下 | 方正楷体_GBK | 三号(16pt) | 副标题区 |
| 一级(一、) | 方正黑体_GBK | 三号 | — |
| 二级(一) | 方正楷体_GBK | 三号 | — |
| 三级(1.) | 方正仿宋_GBK | 三号 | — |
| 四级(1) | 方正仿宋_GBK | 三号 | 加粗 |
| 正文 | 方正仿宋_GBK(数字字母 Times New Roman) | 三号 | — |
| 页码 | 宋体 | 四号(14pt) | 奇右偶左空1字 |
页面:A4,边距 上3.5/下2.9/左2.55/右2.55cm,页脚1.75cm,行距固定值29磅, 文档网格 linePitch=580(每页约22行)。
脚本按段落首部编号模式判断层级,无需用户标注:
- 一级:^[一二三四五六七八九十百]+、(一、二、…)
- 二级:^[((][一二三四五六七八九十百]+[))]((一)(二)…,兼容中英文括号)
- 三级:^\d+[\..](1. 2. …,兼容中英文句点)
- 四级:^[((]\d+[))]((1)(2)…,兼容中英文括号)
匹配顺序为 一级 → 二级 → 四级 → 三级,避免 (1) 被误判。无法识别的段落按正文处理。
run.font.name 仅影响西文字符,
中文字符需写 w:rFonts 的 w:eastAsia,否则 Word 用默认宋体渲染。脚本已处理,
二次开发时勿遗漏。--title-paragraphs 指定行数,
否则第二行会被误判为副标题或正文。scripts/format_docx.py:核心格式化脚本,自包含、带 argparse,可直接命令行运行。references/format_spec.md:完整格式规范参考,含实现说明与字号对照表,需核对
具体数值或向用户解释规则时加载。这个 Skill 质量很好,能一键将 Word 文档排成标准公文格式,字体、字号、行距、页码等设置一步到位。文档说明详细,参数配置灵活,错误提示友好。优点是功能完整、格式规范、自动化程度高。不足之处是依赖特定的方正字体包,用户需要自行安装;另外路径配置偏向 Windows 环境。建议提前准备好方正字体以获得最佳效果。