| name | gbt-9704-2012-skills |
| description | 国家行政机关公文格式处理工具(GB/T 9704-2012)。支持格式诊断、标点修复、公文格式排版、页码自动生成。 |
国家行政机关公文格式处理工具(GB/T 9704-2012)
专门用于处理党政机关公文格式,严格按照《GB/T 9704-2012 党政机关公文格式》国家标准设计。
功能概览
| 功能 | 说明 | 脚本 |
|---|
| 格式诊断 | 分析文档存在的格式问题,输出诊断报告 | analyzer.py |
| 标点修复 | 修复中英文标点混用,符合公文规范 | punctuation.py |
| 公文排版 | 应用标准公文格式(页面、字体、字号、行距等) | formatter.py |
| 表格优化 | 自动调整表格布局、边框、对齐方式 | formatter.py |
| 页码生成 | 自动生成标准页码(一字线,奇右偶左) | formatter.py |
| 版记处理 | 自动处理抄送、印发单位等版记格式 | formatter.py |
快速开始
1. 格式诊断
分析文档存在的问题,输出详细诊断报告:
uv run --with python-docx python3 scripts/analyzer.py input.docx
输出示例:
==================================================
公文格式诊断报告
==================================================
【标点问题】共 8 处
- 英文括号:第 2、5、8 段
- 英文引号:第 3、7 段
- 英文句号:第 4、6 段
- 不规范省略号:第 9 段
【序号问题】共 2 处
- 序号格式不统一:同时存在 "1." 和 "1、"
【段落格式问题】共 5 处
- 缺少首行缩进:第 3、5、7、9、11 段
- 行距不统一:存在 3 种不同行距
【字体问题】共 2 处
- 字体种类过多:检测到 6 种字体
- 字号不统一:检测到 5 种字号
--------------------------------------------------
共发现 17 处格式问题
建议:
- 运行 punctuation.py 修复标点问题
- 运行 formatter.py 统一公文格式
2. 标点符号修复
uv run --with python-docx python3 scripts/punctuation.py input.docx output.docx
uv run --with python-docx python3 scripts/punctuation.py input.docx output.docx --mode chinese
uv run --with python-docx python3 scripts/punctuation.py input.docx output.docx --fix brackets,quotes
3. 公文格式排版
uv run --with python-docx python3 scripts/formatter.py input.docx output.docx
uv run --with python-docx python3 scripts/formatter.py input.docx output.docx --preset custom
4. 组合使用(推荐流程)
uv run --with python-docx python3 scripts/analyzer.py messy.docx
uv run --with python-docx python3 scripts/punctuation.py messy.docx temp.docx
uv run --with python-docx python3 scripts/formatter.py temp.docx clean.docx
uv run --with python-docx python3 scripts/analyzer.py clean.docx
公文格式标准(GB/T 9704-2012)
页面设置
纸张:A4(210mm × 297mm)
页边距:上 37mm,下 35mm,左 28mm,右 26mm
版心:156mm × 225mm(不含页码)
字体字号
| 要素 | 字体 | 字号 | 说明 |
|---|
| 公文标题 | 方正小标宋简体 | 二号(22pt) | 居中 |
| 主送机关 | 仿宋_GB2312 | 三号(16pt) | 顶格 |
| 一级标题 | 黑体 | 三号(16pt) | "一、" 首行缩进 2 字符 |
| 二级标题 | 楷体_GB2312 | 三号(16pt) | "(一)" 首行缩进 2 字符 |
| 三级标题 | 仿宋_GB2312 | 三号(16pt) | "1." 首行缩进 2 字符 |
| 四级标题 | 仿宋_GB2312 | 三号(16pt) | "(1)" 首行缩进 2 字符 |
| 正文 | 仿宋_GB2312 | 三号(16pt) | 首行缩进 2 字符 |
| 附件说明 | 仿宋_GB2312 | 三号(16pt) | 首行缩进 2 字符 |
| 发文机关署名 | 仿宋_GB2312 | 三号(16pt) | 右对齐 |
| 成文日期 | 仿宋_GB2312 | 三号(16pt) | 右对齐,阿拉伯数字 |
| 附注 | 仿宋_GB2312 | 三号(16pt) | 居左空 2 字,圆括号 |
| 抄送单位 | 仿宋_GB2312 | 三号(16pt) | 左右各空 1 字 |
| 页码 | 宋体 | 四号(14pt) | 一字线,奇右偶左 |
段落格式
正文:首行缩进 2 字符,行距固定值 28 磅
标题:首行缩进 2 字符,行距固定值 28 磅
主送机关:顶格,行距固定值 28 磅
落款:右对齐,行距固定值 28 磅
页码格式
位置:距版心下边缘约 7mm
格式:— 1 —(一字线 + 空格 + 页码 + 空格 + 一字线)
对齐:奇数页居右,偶数页居左
字体:四号宋体
标点符号处理规则
公文标点规范
| 标点 | 用法说明 |
|---|
| 括号 | 中文用(),英文用 (),公文一般用全角括号 |
| 引号 | 双引号"",单引号'',不能用直引号 ""'' |
| 冒号 | 中文用全角:,英文用半角: |
| 逗号 | 中文用全角,,英文用半角, |
| 句号 | 中文用全角。,英文用半角. |
| 省略号 | ……(6 个点,居中),不能用... |
| 破折号 | ——(2 个汉字长度),不能用--或— |
特殊处理
- 成文日期:使用阿拉伯数字,如"2024 年 1 月 15 日"
- 结构层次序数:
- 第一层:"一、" "二、" "三、"
- 第二层:"(一)" "(二)" "(三)"
- 第三层:"1." "2." "3."
- 第四层:"(1)" "(2)" "(3)"
- 数字用法:公文中的数字,除部分结构层次序数和词、词组、惯用语、缩略语外,使用阿拉伯数字
公文要素识别
自动识别的公文要素
- 标题:识别"关于 XXX 的通知/报告/请示/函"等公文标题
- 主送机关:识别"XXX:"格式的主送单位
- 正文:自动识别各层级标题和正文段落
- 附件说明:识别"附件:XXX"或"附件 1:XXX"
- 发文机关署名:识别单位名称(含"局/委/部/厅/院/所/公司"等)
- 成文日期:识别多种日期格式,统一转为阿拉伯数字
- 版记:识别抄送、印发单位等版记要素
特殊段落处理
- 不需要首行缩进的段落:
- 居中的主标题
- 主送机关(顶格)
- 附件行
- 落款单位(右对齐)
- 成文日期(右对齐)
- 抄送单位行
表格处理规范
表格格式要求
边框:0.5 磅细实线
表头:居中,可加粗
内容:
- 序号列:居中
- 短文本(≤4 字):居中
- 数字:右对齐
- 长文本:左对齐
行高:至少 0.7cm
单元格边距:左右 0.05cm
列宽:根据内容自动调整(8%-45%)
表题和表注
- 表题:表格上方,居中,如"表 1 XXX 情况表"
- 表注:表格下方,右对齐,如"单位:万元"
- 间距:表题与表格之间、表格与表注之间空一行
文件结构
gbt-9704-2012-skills/
├── SKILL.md # 使用说明
├── README.md # 详细介绍
├── scripts/
│ ├── analyzer.py # 格式诊断
│ ├── punctuation.py # 标点修复
│ └── formatter.py # 公文排版
└── presets/
├── official.json # 标准公文格式
└── custom.json # 自定义格式(可选)
依赖
使用 uv run --with python-docx 自动安装。
注意事项
- 只支持 .docx 格式:不支持旧版 .doc 格式(可先用 Word 另存为 .docx)
- 备份原文件:修改前建议备份原文件
- 字体依赖:输出文件需要系统安装对应字体才能正确显示
- 方正小标宋简体
- 仿宋_GB2312
- 楷体_GB2312
- 黑体
- 表格内容:会自动处理表格内的文字格式和对齐方式
- 页码:自动启用奇偶页不同页脚,生成标准页码格式
- 首次运行:会自动安装 python-docx 依赖,可能需要几分钟
常见问题
Q: 为什么输出的文档字体显示不正确?
A: 需要系统安装对应的中文字体。Windows 系统一般自带这些字体,Mac/Linux 系统需要手动安装。
Q: 可以处理带表格的公文吗?
A: 可以。会自动识别并优化表格格式,包括边框、列宽、对齐方式等。
Q: 成文日期能自动转换格式吗?
A: 可以。支持识别"二〇二四年一月十五日"和"2024 年 1 月 15 日"等格式,统一转为阿拉伯数字。
Q: 如何处理版记(抄送、印发)?
A: 会自动识别"抄送:"、"印发:"等关键字,按标准格式排版(左右各空 1 字)。
项目来源
本工具是在 document-format-skills 项目基础上,针对国家行政机关公文格式(GB/T 9704-2012)进行的专项开发和优化。
感谢原项目作者的优秀工作,本工具继承了原项目的核心功能,并针对党政机关公文场景进行了深度定制。
版本信息
- 版本:1.0.0
- 标准依据:GB/T 9704-2012 党政机关公文格式
- 创建日期:2026-04-08