基于 python-docx + pywin32(Word COM) 的毕业论文(设计)格式检测与自动修复工具,支持 命令行 与 Web 前后端 两种使用方式。
Windows-only:由于依赖 Word COM(
pywin32),仅支持 Windows x64。
- 章节完整性检查:封面/摘要/关键词/目录/正文/参考文献/附录等(基于
utils.get_sections()) - 目录检查:目录只允许到二级标题(禁止 2.1.2 这类三级)
- 章节数量检查:目录章节数量不少于配置值(默认 5)
- 字数检查:总字数不少于配置值(默认 10000)
- 引用数量检查:正文引用(
[n])不少于配置值(默认 5) - 参考文献数量检查:不少于 15,其中英文不少于 2
- 文献综述检测:检测是否存在综述相关内容(关键词启发式)
- 标题(1~3级)格式检查:中西文字体分离(eastAsia / ascii+hAnsi),字号、对齐、行距
- 正文段落格式检查:会排除目录/标题/图题/表题/代码段等后再检查
- 图题格式检查(图下标题)
- 表题格式检查(表上标题)
- 参考文献格式检查
- 致谢格式检查
- 自动修复标题(1~3级)
- 自动修复正文(含缩进/行距/对齐/中西字体/字号)
- 自动修复致谢(新增)
- 自动修复图题/表题
- 自动修复参考文献
自动修复不会修改原文件,会生成修复后的 docx 到
fixed_docs/。
- Windows x64
- 本机安装 Microsoft Word(用于 COM 能力:提取封面文本框、目录兜底、图与图题关联等)
Python 依赖(以 uv 为例) :
uv sync
uv pip install -e .前端依赖:
cd ./frontend
npm install入口:src/pp4mat/paper4mat.py
参数:
--docx:论文 docx 路径--config:规则文件路径(默认./rules.yaml,仓库内建议用./configs/rules.yaml)--output:报告输出目录(默认./reports)--log_dir:日志目录(默认./logs)--debug:开启调试日志
输出:
reports/<filename>.md
后端为 FastAPI(app/main.py),提供接口:
GET /:健康检查GET /stats/:获取累计统计(检测次数/修复次数)POST /upload/:上传并检测,返回报告内容POST /fix/:上传并自动修复,返回修复信息GET /download/fixed/{filename}:下载修复后的 docx
前端会调用:
- 上传并检测(显示报告)
- 自动修复并下载(显示修复条目与统计)
规则文件:configs/rules.yaml
关键点:
- 字体字段采用 中西分离 :
font_chinese:写入/比对w:rFonts/@w:eastAsiafont_western:写入/比对w:rFonts/@w:ascii+w:hAnsi
- 字号:
font_size(pt) - 对齐:
alignment(LEFT/CENTER/RIGHT/JUSTIFY/DISTRIBUTE) - 行距:
line_spacing(倍数,如 1.5) - 参考文献支持缩进字段:
left_indent_cm/first_line_indent_cm
- 启动后端(仅本机) :
npm run api:dev默认 http://localhost:8000
- 启动前端:
npm run web:dev- 前端默认监听
127.0.0.1:5174 - Vite 已将
/upload等请求代理到http://localhost:8000
npm run api:serve
npm run web:build
npm run web:start