公文格式审查系统 一键检查公文格式

公文格式审查系统


一、项目背景与痛点

在中国,各级党政机关、团体和企事业单位日常工作中产生大量公文。根据 GB/T 9704《党政机关公文格式》国家标准,公文在字体、字号、行距、对齐、缩进等方面有严格的格式要求。然而在实际工作中,公文格式不规范是一个普遍存在的痛点:

  • 人工检查效率极低:一份 20 页的公文可能包含上百个段落,每个段落需要核对字体、字号、对齐方式、行距、缩进等 6-8 项属性,人工检查耗时且容易遗漏。
  • 格式错误类型多样:常见的错误包括正文未使用仿宋字体、标题字号错误、行距不统一、首行缩进缺失、数字未使用 Times New Roman 字体等,涉及 10 余种检查维度。
  • 缺乏自动化工具:目前市面上缺少专门针对中国公文格式的自动化检查与修复工具,大多数文档处理软件仅提供通用的格式化功能,无法识别公文特有的段落类型并应用对应的格式规则。
  • Word 原生功能不足:虽然 Word 提供了样式功能,但无法自动识别段落类型,也无法一键将全文修正为符合公文标准的格式。

基于以上痛点,我们开发了「公文格式审查系统」,旨在通过技术手段实现公文格式的自动化检查与一键修复,大幅提升公文处理效率。


二、项目简介

公文格式审查系统是一个基于 Web 的公文格式自动化检查与修复工具。用户只需上传 Word 文档(.docx),系统即可自动完成以下工作:

  • 智能解析:深度解析 Word 文档结构,提取段落文本、样式信息、图片、表格等结构化数据
  • 段落分类:基于规则引擎自动识别 12 种段落类型(标题、一级标题、二级标题、三级标题、正文、抬头、署名、署名日期、文号等)
  • 格式验证:实时检查 10+ 项格式规则,包括字体、字号、对齐方式、行间距、首行缩进、段前段后间距、数字字体、文号格式等
  • 一键修复:一键自动修复所有检测到的格式错误,将全文统一为符合 GB/T 9704 标准的公文格式
  • 在线编辑:基于 TipTap 富文本编辑器,支持实时在线编辑,所见即所得
  • 标准导出:修复后可导出为标准格式的 Word 文档,直接用于正式发文

三、核心功能详解

3.1 智能文档解析

后端使用 python-docx 深度解析 Word 文档的 XML 结构,完整提取文档信息。解析器能够处理以下复杂场景:

  • 样式继承链解析:段落样式 > 段落样式继承链(basedOn)> 第一个 Run 的样式 > 文档默认样式 > 主题字体,确保提取的样式信息准确无误
  • 混合内容段落:一个段落中可能同时包含中文、英文、数字,每种字符可能使用不同的字体和字号,解析器逐 Run 提取样式信息
  • 内联图片识别:从 Word 的 DrawingML 结构中提取图片,包括图片尺寸(EMU 转 cm,与 Word 显示一致)、图片 URL 等
  • 表格结构解析:支持合并单元格(colspan/rowspan)、列宽、单元格样式等复杂表格结构
  • 二次位置扫描:基于段落在文档中的位置比例,对 header(抬头)和 signature(署名)进行二次修正,提高分类准确率

3.2 段落类型自动分类

系统内置规则分类器,按优先级从高到低匹配 12 种段落类型:

优先级 匹配规则 目标类型
1 日期正则 \d{4}年\d{1,2}月\d{1,2}日 署名日期(date)
2 长度≤20 + 成对特殊括号 文号(doc_number)
3 第X章 模式 一级标题(heading1)
4 第X节 模式 二级标题(heading2)
5 第X条 模式 三级标题(heading3)
6 一、二、三、... 模式 一级标题(heading1)
7 (一)(二)... 模式 二级标题(heading2)
8 1. 2. / (1)(2) 模式 三级标题(heading3)
9 居中 + 字号≥20 标题(title)
10 位置比例判断 抬头/署名
11 冒号结尾的短文本 正文开头(body_opening)
12 长度≥20 的长文本 正文(body)

3.3 实时格式验证

前端内置规则引擎,每 3 秒自动对全文进行格式验证,检查项包括:

  • 段落样式属性:对齐方式、字体、字号、首行缩进是否与段落类型对应的规则匹配
  • 全局行间距:全文行间距是否为固定值 30 磅
  • 段前段后间距:全文段前段后间距是否为 0
  • Run 级别检查:每个文本片段的字体、字号是否与段落类型规则一致
  • 数字字体检查:包含阿拉伯数字的文本片段是否使用 Times New Roman 字体
  • 文号特殊检查:文号类型段落是否包含〔年份〕格式
  • 错误可视化:不合规的段落下方显示红色波浪线,左侧错误列表面板实时显示所有错误详情

3.4 一键智能修复

用户点击「一键修复」按钮后,系统自动完成以下操作:

  • 删除冗余:自动删除图片上下方的空白段落,优化文档结构
  • 统一样式:根据段落类型对应的规则,统一设置对齐方式、字体、字号、首行缩进、行间距、段前段后间距
  • 修复 Run:拆分混合字体 Run(数字部分单独设为 Times New Roman),统一 Run 的字体、字号、加粗属性
  • 文号格式化:自动将文号中的年份格式化为〔YYYY〕标准格式
  • 重新渲染:修复完成后自动重新渲染编辑器内容,并重新验证,清除已修复的错误标记

四、技术架构

4.1 技术栈

后端: Python 3.10 + FastAPI + python-docx + Uvicorn。FastAPI 提供 RESTful API,python-docx 负责 Word 文档的解析与生成。后端还集成了基于 StructBERT 微调模型的 AI 分类器(可选),支持 GPU 加速推理。

前端: Vue 3 + TipTap 3.0 + Element Plus + Vite。TipTap 是基于 ProseMirror 的现代富文本编辑器,支持自定义扩展(如错误波浪线、自定义图片、分页等)。Element Plus 提供 UI 组件库。

4.2 系统架构

graph TB
    subgraph Browser["用户浏览器"]
        subgraph Frontend["Vue 3 + TipTap 前端"]
            Editor["编辑器 TipTap"]
            Toolbar["工具栏 字体/字号"]
            ErrorList["错误列表 波浪线"]
            Export["导出下载"]
        end
    end

    subgraph Backend["FastAPI 后端 :5000"]
        subgraph Services["服务层"]
            Parser["WordParser .docx解析"]
            Classifier["RuleClassifier 段落分类"]
            Generator["WordGenerator Word导出"]
        end
    end

    Frontend -->|"HTTP JSON"| Backend

4.3 数据流设计

系统采用「单一数据源」架构,originalParagraphs 是整个系统的唯一数据源。后端返回的段落数据直接赋值给 originalParagraphs,渲染、验证、修复、导出都使用同一个引用,避免数据不一致。

编辑器作为纯展示层,用户编辑内容时仅同步文本、Run 样式和对齐方式,不触碰 expectedType、字体、字号等由后端决定的属性。

4.4 关键设计决策

  • 规则引擎统一TYPE_RULES 只在 useDocumentValidator.js 中定义一份,验证器和修复器共用同一份规则
  • 编辑器同步策略:使用 isRenderingisFixing 两个锁保护,确保渲染和修复过程中不会触发编辑器同步
  • 空段落保留:空段落在渲染时使用行间距作为高度,与 Word 行为一致;导出时保留所有空段落
  • 图片尺寸精确:后端从 Word XML 读取 EMU 值并转换为 cm(1cm = 360000 EMU),前端用 CSS cm 单位渲染

五、项目亮点

  • 全流程自动化:从上传、解析、分类、验证到修复、导出,全流程自动化,用户只需上传文档并点击一键修复
  • 所见即所得:基于 TipTap 富文本编辑器,编辑体验流畅,支持实时预览,修复效果立即可见
  • 实时验证反馈:错误段落下方显示红色波浪线,左侧面板实时显示错误列表,快速定位问题
  • 高精度段落分类:规则分类器覆盖 12 种段落类型,结合位置比例和文本特征,分类准确率高
  • 格式还原度高:导出的 Word 文档在字体、字号、行距、页边距等方面与原文高度一致
  • 可扩展架构:规则引擎和分类器均为模块化设计,支持轻松添加新的段落类型和验证规则

六、应用场景

  • 党政机关:各级政府部门的公文格式审查,确保发文符合 GB/T 9704 标准
  • 企事业单位:企业内部公文的格式规范化处理
  • 教育培训:公文写作培训中,自动检查学员练习的格式是否规范
  • 文档管理:大量历史公文的批量格式化处理
  • 出版排版:出版社、印刷厂在排版前对公文进行格式预检

七、总结

公文格式审查系统通过深度解析 Word 文档结构、智能识别段落类型、实时验证格式合规性、一键修复格式错误,实现了公文格式审查的全流程自动化。系统采用前后端分离架构,前端基于 Vue 3 + TipTap 提供流畅的编辑体验,后端基于 FastAPI + python-docx 提供强大的文档处理能力。

本项目的核心价值在于:将原本需要人工逐项检查、耗时数分钟甚至数十分钟的公文格式审查工作,缩短到几秒钟内自动完成。这不仅大幅提升了工作效率,也有效降低了因格式不规范导致的退文率,具有显著的实用价值和推广意义。

你好,请问你的项目有上传下载途径么?你的这个思路很好诶

1 个赞