补齐预印边界、签章定位与标准证据

This commit is contained in:
mizzlelover
2026-09-11 08:47:44 +08:00
parent 6b9d19698f
commit 2cd937a22e
11 changed files with 53 additions and 19 deletions
+1 -1
View File
@@ -52,7 +52,7 @@
- [ ] 印发机关和日期为四号仿宋,左空一字与右空一字;日期完整且不补零,后加“印发”。
- [ ] 页码为四号半角宋体阿拉伯数字,两侧各一字线,线距版心下边缘7mm;单页右空一字、双页左空一字;空白页、特定版记页和附件连续页码已按规则处理。
- [ ] 横排表格使用 `--format horizontal-table` 或目标 Word/WPS 横向模板;本项目已实际渲染横向页面和225mm表格,但单双页表头在订口/切口的方向仍需目标软件核对。
- [ ] 信函、命令(令)、纪要、联合行文已使用相应专用版式;`formal --joint-org` 的截图已确认主办机关在前、联署机关分行排列“文件”置右并上下居中;复杂机关标志仍按现行模板核对;不能用普通打印稿替代。
- [ ] 信函、命令(令)、纪要、联合行文已使用相应专用版式;`formal --joint-org` 的截图已确认主办机关在前、联署机关分行排列;输入含“文件”时将“文件”置右并上下居中;复杂机关标志仍按现行模板核对;不能用普通打印稿替代。
- [ ] 信函格式已核对上边缘30mm、上粗下细双线、下页边20mm处上细下粗双线,双线长度均170mm;如有份号、密级、紧急程度,均置于第一条双线下并距线3号字高7/8;文号顶格居右;首页无页码且版记不画分隔线。当前生成器对这些可选信函版头字段要求使用专用模板。
- [ ] 命令(令)格式已核对发文机关全称加“命令”或“令”、标志上边缘距版心20mm、令号下空二行、正文下空二行;签发章和日期按7.3.5.3核对。
- [ ] 纪要格式已核对标志上边缘距版心35mm,出席/请假/列席标签为黑体,人员为仿宋。
+1 -1
View File
@@ -160,7 +160,7 @@
| 预印红头纸套打 | 是 | `--format formal --letterhead preprinted`,按纸样设置预留高度 |
| 完整电子红头 | 是 | `--format formal --letterhead digital` |
| 印章、签名章 | 文字版式之外 | 在 Word/WPS 中插入图片或实体盖章 |
| 联合行文 | 通过 `--joint-org` 分行生成,主办机关在前“文件”置右并按联署名称上下居中 | 复杂机关专用标志和联署模板复核 |
| 联合行文 | 通过 `--joint-org` 分行生成,主办机关在前;输入含“文件”时将“文件”置右并按联署名称上下居中 | 复杂机关专用标志和联署模板复核 |
| 附件 | 通过 `--attachment-file` 另页生成标签、标题和正文;`--attachment-detached` 补排文号和附件序号 | 复杂附件版式仍需人工复核 |
| 版记 | 是 | `--cc``--print-org``--print-date` 适用时生成 |
| 信函、命令、纪要、横排表格 | 是/部分通过 | `--format letter|command|minutes|horizontal-table`,按实际字段生成;横排表头方向需模板复核 |
+2 -2
View File
@@ -20,8 +20,8 @@
| 7.2.1 | 份号六位、3 号、左上第一行 | `--copy-no` 只接受 1—6 位阿拉伯数字并补足六位 | 结构检查;实际是否需要份号由发文机关确认 |
| 7.2.2 | 密级和保密期限第二行、3 号黑体 | `--secret` 按黑体3号写入;没有份号时自动保留第一行空位,使密级仍在第二行 | 结构检查和视觉审计;文字内容和期限写法人工复核 |
| 7.2.3 | 紧急程度及排列顺序 | `--urgent` 按黑体 3 号写入,并按份号、密级、紧急程度顺序下移 | 适用性和紧急级别人工确认 |
| 7.2.4 | 发文机关标志居中、红色、版心上边缘下 35mm、推荐小标宋 | `formal --letterhead digital` 才绘制;预印模式只留纸样区域;首面字段以版心上边缘为垂直锚点,机关标志固定在其下35mm,不推动机关标志或预留区;联合行文通过 `--joint-org` 分行生成,主办机关在前“文件”置右并按联署名称上下居中;名称过长时自适应标志字号 | `verify_gongwen_docx.mjs``tests/measure-header-coordinates.mjs` 和[`gbt9704-screenshot-evidence.md`](gbt9704-screenshot-evidence.md);当前机缺少推荐字体时严格模式失败,复杂机关专用标志仍需模板核对 |
| 7.2.5 | 文号下空二行、六角括号、全年份、顺序号不加“第”不补零 | `formal`/`letter``--doc-no` 做格式校验,并写入两个显式 28 磅空行 | 文号语义由机关编号规则确认 |
| 7.2.4 | 发文机关标志居中、红色、版心上边缘下 35mm、推荐小标宋 | `formal --letterhead digital` 才绘制;预印模式只留纸样区域;首面字段以版心上边缘为垂直锚点,机关标志固定在其下35mm,不推动机关标志或预留区;联合行文通过 `--joint-org` 分行生成,主办机关在前;输入含“文件”时将“文件”置右并按联署名称上下居中;名称过长时自适应标志字号 | `verify_gongwen_docx.mjs``tests/measure-header-coordinates.mjs` 和[`gbt9704-screenshot-evidence.md`](gbt9704-screenshot-evidence.md);当前机缺少推荐字体时严格模式失败,复杂机关专用标志仍需模板核对 |
| 7.2.5 | 机关标志下空二行、六角括号、全年份、顺序号不加“第”不补零 | `formal`/`letter``--doc-no` 做格式校验,并写入两个显式 28 磅空行 | 文号语义由机关编号规则确认 |
| 7.2.6 | 上行文文号左空一字、签发人右空一字并同一行;标签仿宋、姓名楷体 | `--upward true --signer` 同行生成单一或两个签发人,左右各空一字;多签发人、联合行文转人工模板 | 结构校验和 PDF;复杂联合行文需按机关顺序人工排布 |
| 7.2.7 | 文号下 4mm、版心等宽红线 | `redRule()` 生成 156mm 红线,文号段后 4mm;预印模式不重绘 | PDF 量测;红色油墨和实际纸样人工核对 |
| 7.3.1 | 标题 2 号小标宋,红线下空二行、居中 | 标题使用 `GongwenTitle`,红线/预印线后插入两个显式 28 磅空段落 | XML + PDF 视觉门;小标宋缺失时严格模式失败 |
+2 -2
View File
@@ -69,7 +69,7 @@ bash tests/visual-audit.sh /tmp/gongwen-visual-audit-all-rules
| 7.2.1 | 份号六位三号阿拉伯数字,版心左上第一行。 | `formal-digital-all-1.png``formal-preprinted-1.png` 显示 `000007`;独立坐标日志显示 39.88mm 首行位置。 | 截图通过。 |
| 7.2.2 | 密级和保密期限第二行三号黑体,数字用阿拉伯数字。 | `formal-digital-all-1.png` 显示 `机密★3年` 位于第二行。 | 截图通过;密级文字及期限是否适用需机关确认。 |
| 7.2.3 | 紧急程度三号黑体;与份号、密级同时出现时按份号、密级、紧急程度自上而下。 | `formal-digital-all-1.png` 显示三项顺序;`letter-fields-1.png` 显示信函双线下同顺序。 | 截图通过。 |
| 7.2.4 | 机关全称/规范简称可加“文件”,居中红色;上边缘距版心上边缘35mm;联合行文主办机关在前,联署名称上下居中。 | `formal-digital-all-1.png``formal-joint-1.png`;坐标日志显示机关标志 71.41mm 页面坐标,字段差0.00mm;联合行文以主办机关在前、联署机关名称分行排列,“文件”置右并按联署名称上下居中;名称过长时自适应标志字号。 | 截图通过,推荐小标宋字体需目标机复核;复杂机关专用标志仍需模板核对。 |
| 7.2.4 | 机关全称/规范简称可加“文件”,居中红色;上边缘距版心上边缘35mm;联合行文主办机关在前,联署名称上下居中。 | `formal-digital-all-1.png``formal-joint-1.png`;坐标日志显示机关标志 71.41mm 页面坐标,字段差0.00mm;联合行文以主办机关在前、联署机关名称分行排列,输入含“文件”时将“文件”置右并按联署名称上下居中;名称过长时自适应标志字号。 | 截图通过,推荐小标宋字体需目标机复核;复杂机关专用标志仍需模板核对。 |
| 7.2.5 | 机关标志下空二行;年份全称、六角括号、顺序号不加“第”不补零、末尾“号”;上行文文号左空一字。 | `formal-digital-all-1.png``formal-digital-upward-1.png`;文号输入边界和显式空行均经校验。 | 截图通过。 |
| 7.2.6 | “签发人:”三号仿宋、姓名三号楷体,右空一字;多签发人按顺序、一般每行两名、回行对齐。 | `formal-digital-upward-1.png` 显示同一行双签发人,姓名字体和标签分 run。 | 截图通过;超过两名或联合行文复杂签发人仍须专用模板。 |
| 7.2.7 | 文号下4mm处、版心等宽红色分隔线。 | `formal-digital-all-1.png``formal-joint-1.png`;线宽156mm,红线下标题空两行。 | 截图通过;预印模式明确不重绘红线。 |
@@ -98,7 +98,7 @@ bash tests/visual-audit.sh /tmp/gongwen-visual-audit-all-rules
## 本次发现并修正的实现问题
1. 命令(令)分支曾把20mm误当成纸张上边距,导致机关标志距离纸顶约20mm;现在恢复标准37mm天头,并在版心上边缘下20mm处排标志,实际截图已复核。
2. 联合行文曾把联署机关名称错误压成同一横行;现在主办机关在前、联署机关名称分行排列,“文件”置右并按联署名称上下居中名称过长时自适应标志字号。
2. 联合行文曾把联署机关名称错误压成同一横行;现在主办机关在前、联署机关名称分行排列,输入含“文件”时将“文件”置右并按联署名称上下居中名称过长时自适应标志字号。
3. 纪要出席、请假、列席名单曾追加在附件和版记之后;现在紧跟正文或附件说明下一行生成,符合10.3的编排位置。
4. PDF 字形量测曾按 `yMin` 粗略分组,遇到高字形会把同一视觉行拆开;现在按字形垂直重叠合并后再量测,独立坐标结果稳定。
5. 视觉审计补入了横排表格、22×28校准页、联合行文、分离装订附件、不盖章公文和命令(令)等场景,不再只依赖电子红头样例。
+4 -4
View File
@@ -10,7 +10,7 @@
bash tests/visual-audit.sh /tmp/gongwen-visual-audit-all-rules
```
脚本实际生成 18 份 DOCX,逐份通过校验器,使用 LibreOffice 转 PDF,再用 `pdftoppm` 输出 37 个 PDF 页面和 PNG。人工检查以 PNG 为准,XML 和校验器只作为辅助证据。脚本还用 `pdftotext -bbox-layout` 独立量测电子红头首页:份号字形落在 37 mm 版心首行附近,机关标志字形落在 35 mm 版心上边缘下方附近,并把带版头字段与不带字段的机关标志位置差控制在 0.8 mm;结果写入运行目录的 `logs/header-coordinates.log`。当前批次的文件清单保存在提交的 [`assets/visual-audit/all-rules/manifest.tsv`](assets/visual-audit/all-rules/manifest.tsv),单页证据和总览图保存在同目录;每份文件的校验日志保存在运行目录的 `logs/`。完整逐条矩阵见 [`gbt9704-screenshot-evidence.md`](gbt9704-screenshot-evidence.md)。
脚本实际生成 18 份 DOCX,逐份通过校验器,使用 LibreOffice 转 PDF,再用 `pdftoppm` 输出 37 个 PDF 页面和 PNG。人工检查以 PNG 为准,XML 和校验器只作为辅助证据。脚本还用 `pdftotext -bbox-layout` 独立量测电子红头首页:份号字形落在 37 mm 版心首行附近,机关标志字形落在 35 mm 版心上边缘下方附近;本批次带版头字段与不带字段的机关标志位置差为 0.00 mm,校验阈值为 0.8 mm;结果写入运行目录的 `logs/header-coordinates.log`。当前批次的文件清单保存在提交的 [`assets/visual-audit/all-rules/manifest.tsv`](assets/visual-audit/all-rules/manifest.tsv),单页证据和总览图保存在同目录;每份文件的校验日志保存在运行目录的 `logs/`。完整逐条矩阵见 [`gbt9704-screenshot-evidence.md`](gbt9704-screenshot-evidence.md)。
![本次18个场景全览](assets/visual-audit/all-rules/contact-sheet.png)
@@ -58,8 +58,8 @@ bash tests/visual-audit.sh /tmp/gongwen-visual-audit-all-rules
| 7.2.1 | 份号六位、左上第一行 | 截图通过 | `formal-digital-all-1.png``formal-preprinted-1.png` 显示 `000007`;首面字段采用固定定位。 |
| 7.2.2 | 密级和保密期限第二行、3 号黑体 | 截图通过 | `formal-digital-all-1.png` 显示左上第二行;保密期限具体写法仍需机关确认。 |
| 7.2.3 | 紧急程度及顺序 | 截图通过 | `formal-digital-all-1.png` 显示份号、密级、紧急程度顺序;是否适用由发文机关决定。 |
| 7.2.4 | 机关标志居中、红色、距版心上边缘 35 mm | 版式结构通过,标准字体需复核 | `formal-digital-all-1.png``references/assets/visual-audit/header-coordinates.log` 的 PDF 字形量测;左上字段不再推动机关标志。机关标志字体按标准为推荐小标宋,本机缺少该字体,严格模式失败;`formal-joint-1.png` 已观察主办机关在前、联署机关分行排列且“文件”置右并按联署名称上下居中,复杂机关专用标志仍需模板。 |
| 7.2.5 | 文号下空二行、年份、六角括号、序号规则 | 截图通过 | `formal-digital-all-1.png``formal-digital-upward-1.png`;输入验证拒绝“第”和前导零。 |
| 7.2.4 | 机关标志居中、红色、距版心上边缘 35 mm | 版式结构通过,标准字体需复核 | `formal-digital-all-1.png``references/assets/visual-audit/header-coordinates.log` 的 PDF 字形量测;左上字段不再推动机关标志。机关标志字体按标准为推荐小标宋,本机缺少该字体,严格模式失败;`formal-joint-1.png` 已观察主办机关在前、联署机关分行排列且输入含“文件”时将“文件”置右并按联署名称上下居中,复杂机关专用标志仍需模板。 |
| 7.2.5 | 机关标志下空二行、文号年份、六角括号、序号规则 | 截图通过 | `formal-digital-all-1.png``formal-digital-upward-1.png`;输入验证拒绝“第”和前导零。 |
| 7.2.6 | 上行文签发人及多签发人 | 结构通过,仍需人工 | `formal-digital-upward-1.png` 已见同一行和两个签发人;超过两个签发人或联合行文转机关模板。 |
| 7.2.7 | 文号下 4 mm、版心等宽红线 | 截图通过 | `formal-digital-all-1.png` 红线与版心同宽;预印模式不重绘,改由纸样提供。 |
| 7.3.1 | 标题二号小标宋、红线下空二行、居中 | 版式结构通过,标准字体需复核 | `formal-digital-all-1.png``formal-preprinted-1.png`;本机缺小标宋时使用替代并报警,不能把替代字体称为标准字体。 |
@@ -84,7 +84,7 @@ bash tests/visual-audit.sh /tmp/gongwen-visual-audit-all-rules
1. 版头字段曾以普通段落排列,份号、密级、紧急程度会把电子红头机关标志向下推移,预印红头套打的留白也会被挤开。现在这些字段改为首面固定定位,版心中保留等高占位;`formal-digital-all-1.png``formal-preprinted-1.png` 已重新观察。
2. 命令(令)分支曾把20mm误当成纸顶边距;现在恢复37mm天头,并从版心上边缘下20mm量测。
3. 联合行文曾把联署机关错误压成同一横行;现在主办机关在前、联署名称分行排列,“文件”置右并按联署名称上下居中,名称过长时自适应标志字号。
3. 联合行文曾把联署机关错误压成同一横行;现在主办机关在前、联署名称分行排列,输入含“文件”时将“文件”置右并按联署名称上下居中,名称过长时自适应标志字号。
4. 纪要人员曾追加在附件和版记之后;现在紧跟正文或附件说明下一行。
5. 红线下标题曾只依赖段前距,部分渲染器会把标题贴在线上。现在红线或纸上红线之后写入两个显式 28 磅空段落;截图能看到标题与红线之间的实际距离。
6. 主送机关带不带末尾冒号时曾可能重复,现在归一化为一行全角冒号。