# Gbt 9704 2012 Skills

> 国家行政机关公文格式处理工具（GB/T 9704-2012）。支持格式诊断、标点修复、公文格式排版、页码自动生成。

- Skill: `cj0103/gbt-9704-2012-skills` (Agent Skill, multi-file: 6 files)
- Install (CLI): `npx skillmds@latest add cj0103/gbt-9704-2012-skills`
- Raw SKILL.md: https://api.skillmd.com/api/skills/cj0103/gbt-9704-2012-skills/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: cj0103 (https://skillmd.com/u/cj0103)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/cj0103/gbt-9704-2012-skills

---


# 国家行政机关公文格式处理工具（GB/T 9704-2012）

专门用于处理党政机关公文格式，严格按照《GB/T 9704-2012 党政机关公文格式》国家标准设计。

## 功能概览

| 功能 | 说明 | 脚本 |
|------|------|------|
| 格式诊断 | 分析文档存在的格式问题，输出诊断报告 | `analyzer.py` |
| 标点修复 | 修复中英文标点混用，符合公文规范 | `punctuation.py` |
| 公文排版 | 应用标准公文格式（页面、字体、字号、行距等） | `formatter.py` |
| 表格优化 | 自动调整表格布局、边框、对齐方式 | `formatter.py` |
| 页码生成 | 自动生成标准页码（一字线，奇右偶左） | `formatter.py` |
| 版记处理 | 自动处理抄送、印发单位等版记格式 | `formatter.py` |

## 快速开始

### 1. 格式诊断

分析文档存在的问题，输出详细诊断报告：

```bash
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. 标点符号修复

```bash
# 智能模式（根据上下文自动判断）
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. 公文格式排版

```bash
# 应用标准公文格式（GB/T 9704-2012）
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. 组合使用（推荐流程）

```bash
# 步骤 1：先诊断
uv run --with python-docx python3 scripts/analyzer.py messy.docx

# 步骤 2：修复标点
uv run --with python-docx python3 scripts/punctuation.py messy.docx temp.docx

# 步骤 3：应用公文格式
uv run --with python-docx python3 scripts/formatter.py temp.docx clean.docx

# 步骤 4：再次诊断确认
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）"
- **数字用法**：公文中的数字，除部分结构层次序数和词、词组、惯用语、缩略语外，使用阿拉伯数字

---

## 公文要素识别

### 自动识别的公文要素

1. **标题**：识别"关于 XXX 的通知/报告/请示/函"等公文标题
2. **主送机关**：识别"XXX："格式的主送单位
3. **正文**：自动识别各层级标题和正文段落
4. **附件说明**：识别"附件：XXX"或"附件 1：XXX"
5. **发文机关署名**：识别单位名称（含"局/委/部/厅/院/所/公司"等）
6. **成文日期**：识别多种日期格式，统一转为阿拉伯数字
7. **版记**：识别抄送、印发单位等版记要素

### 特殊段落处理

- **不需要首行缩进的段落**：
  - 居中的主标题
  - 主送机关（顶格）
  - 附件行
  - 落款单位（右对齐）
  - 成文日期（右对齐）
  - 抄送单位行

---

## 表格处理规范

### 表格格式要求

```
边框：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          # 自定义格式（可选）
```

---

## 依赖

- python-docx

使用 `uv run --with python-docx` 自动安装。

---

## 注意事项

1. **只支持 .docx 格式**：不支持旧版 .doc 格式（可先用 Word 另存为 .docx）
2. **备份原文件**：修改前建议备份原文件
3. **字体依赖**：输出文件需要系统安装对应字体才能正确显示
   - 方正小标宋简体
   - 仿宋_GB2312
   - 楷体_GB2312
   - 黑体
4. **表格内容**：会自动处理表格内的文字格式和对齐方式
5. **页码**：自动启用奇偶页不同页脚，生成标准页码格式
6. **首次运行**：会自动安装 python-docx 依赖，可能需要几分钟

---

## 常见问题

### Q: 为什么输出的文档字体显示不正确？
A: 需要系统安装对应的中文字体。Windows 系统一般自带这些字体，Mac/Linux 系统需要手动安装。

### Q: 可以处理带表格的公文吗？
A: 可以。会自动识别并优化表格格式，包括边框、列宽、对齐方式等。

### Q: 成文日期能自动转换格式吗？
A: 可以。支持识别"二〇二四年一月十五日"和"2024 年 1 月 15 日"等格式，统一转为阿拉伯数字。

### Q: 如何处理版记（抄送、印发）？
A: 会自动识别"抄送："、"印发："等关键字，按标准格式排版（左右各空 1 字）。

---

## 项目来源

本工具是在 [document-format-skills](https://github.com/ChenXuanZhou/document-format-skills) 项目基础上，针对国家行政机关公文格式（GB/T 9704-2012）进行的专项开发和优化。

感谢原项目作者的优秀工作，本工具继承了原项目的核心功能，并针对党政机关公文场景进行了深度定制。

## 版本信息

- 版本：1.0.0
- 标准依据：GB/T 9704-2012 党政机关公文格式
- 创建日期：2026-04-08

