公文/文档排版规范
概述
本 Skill 定义了中国公文格式规范,用于创建符合标准格式要求的 Word 文档。
输出文件默认保存到桌面:C:\Users\Administrator\Desktop\文件名_公文排版.docx
页面设置
| 项目 | 规格 |
|---|---|
| 纸张 | A4 (210mm × 297mm) |
| 上边距 | 37mm |
| 下边距 | 35mm |
| 左边距 | 28mm |
| 右边距 | 26mm |
字体与字号规范
文档大标题
- 字体: 方正小标宋_GBK(若无可使用"方正小标宋简体")
- 字号: 二号 (22pt / 44 half-point)
- 对齐: 居中
- 首行: 不缩进
- 行距: 1倍行距
- 段后间距: 空1行(大标题与正文之间空1行)
- 字体颜色: 自动(黑色)
标题层级规范
| 层级 | 编号格式 | 字体 | 字号 | 是否加粗 | 对齐方式 | 首行缩进 | 行距 | 段前/后 |
|---|---|---|---|---|---|---|---|---|
| 一级标题 | 一、 | 黑体 | 三号 (16pt/32 half-point) | 否 | 两端对齐 | 空两字(480) | 固定值27磅(540) | 0行 |
| 二级标题 | (一) | 楷体_GB2312 | 三号 (16pt/32 half-point) | 是 | 两端对齐 | 空两字(480) | 固定值27磅(540) | 0行 |
| 三级标题 | 1. | 仿宋_GB2312 | 三号 (16pt/32 half-point) | 是 | 两端对齐 | 空两字(480) | 固定值27磅(540) | 0行 |
| 四级标题 | (1) | 仿宋_GB2312 | 三号 (16pt/32 half-point) | 否 | 两端对齐 | 空两字(480) | 固定值27磅(540) | 0行 |
| 五级标题 | ① | 仿宋_GB2312 | 三号 (16pt/32 half-point) | 否 | 两端对齐 | 空两字(480) | 固定值27磅(540) | 0行 |
| 六级标题 | A. / B. | 仿宋_GB2312 | 三号 (16pt/32 half-point) | 否 | 两端对齐 | 空两字(480) | 固定值27磅(540) | 0行 |
> 注:六级标题按 A. B. C. 顺序续写;若有多个并列六级标题,依次使用 A. B. C. ……
正文规范
- 字体: 仿宋_GB2312
- 字号: 三号 (16pt / 32 half-point)
- 对齐: 两端对齐
- 首行缩进: 2字符 (480 twips)
- 行距: 固定值 27磅 (540 twips)
- 段前/段后间距: 0行 (0 twips)
- 字体颜色: 自动(黑色)
- 孤行控制: 取消(必须关闭寡行/孤行控制)
落款规范
- 公司名称: 仿宋_GB2312,三号,右对齐,行距固定27磅
- 日期: 仿宋_GB2312,三号,右对齐,行距固定27磅
- 日期后缩进: 日期行左缩进3字符(用于盖章位置)
- 正文与落款之间: 空2行
页码规范
- 显示: 必须插入页码
- 页码格式:
—1—(短破折号 + 数字 + 短破折号) - 字体: 仿宋_GB2312
- 字号: 四号 (14pt / 28 half-point)
- 对齐: 居中
- 行距: 1倍行距
- 位置: 页脚居中
- 双面打印: 勾选"双面打印1"(页码显示在页面外侧)
其他格式要求
取消自动编号
自动编号功能必须关闭,防止出现不规范的自动编号格式。
删除段落标记(含隐藏标记)
将整篇文档文字之间的段落标记(包括隐藏的段落标记)全部替换为无内容,保证文档整洁。
图片规范
- 图片对齐: 居中
- 图片注释: 楷体_GB2312,四号,居中
表格规范
按公文格式处理,表格内容使用仿宋_GB2312三号,居中或两端对齐视情况而定。
执行步骤
当用户说"文档排版"/"公文排版"时,按以下步骤执行:
第一步:读取源文档
用 zipfile 模块读取源 .docx 文件的 word/document.xml,提取所有段落文本。
第二步:识别文档结构
根据以下规则识别段落类型:
- 唯一大号短段落 → 大标题
- 一、 二、 三、 开头 → 一级标题
- (一) (二) 开头 → 二级标题
- 1. 2. 3. 开头 → 三级标题
- (1) (2) 开头 → 四级标题
- ① ② ③ 开头 → 五级标题
- A. B. 开头 → 六级标题
- 右对齐短段落(含公司名/日期) → 落款
- 其余 → 正文
第三步:用 Python + lxml 构建公文排版 docx
严格按照上述规范,使用 lxml 直接构建 OOXML,生成新的 .docx 文件。
输出路径:C:\Users\Administrator\Desktop\{原文件名}_公文排版.docx
第四步:验证
解压输出的 .docx,读取 word/document.xml,检查:
1. 大标题:字体=方正小标宋_GBK,居中,二号,段后240(空1行)
2. 一级标题:字体=黑体,三号,两端对齐
3. 二级标题:字体=楷体_GB2312,三号,加粗
4. 正文:字体=仿宋_GB2312,三号,两端对齐,首行缩进480,行距540/exact
5. 所有段落:段前段后=0,无 <w:widowControl> 或值为0
6. 页码:页脚 —N— 格式,仿宋_GB2312四号
7. 无 <w:color> 节点(字体颜色自动)
8. 落款日期行:左缩进1440 twips(3字符)
注意事项
- 输出到桌面:排版后的文件必须保存到
C:\Users\Administrator\Desktop\ - 字体回退:若系统中无"方正小标宋_GBK",可尝试"方正小标宋简体",若仍无则用"小标宋"或"宋体"并备注
- 取消孤行控制:每个段落的
<w:pPr>中不得有<w:widowControl>或必须设为0 - 段落标记清理:构建新文档时,不保留原文档的自动编号和多余段落标记;将隐藏段落标记也全部清除
- 日期后空3字符:落款日期段设置左缩进1440 twips(3字符),首行缩进设为0
- 大标题与正文之间空1行:大标题段
<w:spacing w:after="240"/> - 正文与落款之间空2行:落款前插入两个空段落
脚本编写最佳实践
在编写 Python 脚本生成 Word 文档时,请遵循以下最佳实践,避免特殊字符导致的语法错误:
-
内容数据分离:将文档的文本内容放在独立的
.txt或.json文件中,Python 脚本只负责读取内容并按规范排版。不要将大量中文文本直接硬编码进.py脚本。 -
避免特殊 Unicode 字符:Python 脚本中避免使用以下特殊字符,或改用 Unicode 转义(
\uXXXX):
- 中文破折号—(\u2014)
- 智能引号""(\u201c\u201d)
- 其他非常见 Unicode 标点 -
使用 ASCII 安全字符:标点符号优先使用 ASCII 字符(如
-代替—,"代替智能引号)。 -
分步测试:先使用简单内容测试脚本能否正常运行,再替换为完整文档内容。
-
编码声明:Python 脚本第一行始终添加
# -*- coding: utf-8 -*-。
完整示例
(大标题)分之道真人AI督学项目市场推广策划书
(居中,方正小标宋_GBK二号,段后空1行)
一、项目概述
(一级标题,黑体三号,两端对齐,首行缩进2字符)
(正文)分之道(广东)信息技术科技有限公司2012年成立……
(仿宋_GB2312三号,两端对齐,首行缩进2字符,行距27磅)
(一)五大核心竞争力
(二级标题,楷体_GB2312三号加粗,两端对齐,首行缩进2字符)
1. AI智能诊断
(三级标题,仿宋_GB2312三号加粗,首行缩进2字符)
贵州佳颐教育咨询有限公司
2026年6月25日
(右对齐,仿宋_GB2312三号,日期后缩进3字符)