公文格式实现

demo展示

【使用指南】

在html中引入以下css和js

1
2
<link href="https://www.bookrest.top/works/CN_Office.css" type="text/css" rel="stylesheet" />
<script src="https://www.bookrest.top/works/CN_Office.js"></script>

各样式具体写法,参见 CN_Office.css中的注释。

样式部分

页面

因界面一致性要求,将px单位统一为pt和mm。

不同设备中mm转换为pt的具体数值略有差异,暂未想到更好的办法。一般而言采取300dpi的转换(打印文件质量一般为300dpi)

版心与边距

  • 已知:页边距上37mm,左28mm,左侧装订
  • 设:页边距下35mm,右26mm
  • 则,A4纸(210×297)版心为\([210-(28+26)]×[297-(37+35)]=156×225\),符合5.2.1节。

在网页浏览中,页边距和高度意义微弱,因此在 body中规定 width=156mm

实验性[未完成]:以绝对定位,每225mm插入一条细浅白虚线。

段距与行距

  • 已知:一般每面22行,每行28字(5.2.3节),每字为3号仿宋(5.2.2节),版心为156×225mm(5.2.1节)
  • 参考得:3号字体为15.75/16pt。1pt=1/72in。
  • 字,word,一个汉字宽度的距离。以16pt为参照,1rem
  • 行,line,一行指一个汉字的高度加3号汉字高度的7/8的距离。一般为3号仿宋字,则通常行高为\(16+16\times\frac{7}{8}=30pt\),具体视情况调整。
字号 点数
初号 42 pt
一号 27.5/28 pt
小/新一号 24 pt
二号 21/22 pt
小/新二号 18 pt
三号 15.75/16 pt
四号 13.75/14 pt
小/新四号 12 pt
五号 10.5 pt
小/新五号 9 pt
六号 7.875/8 pt
七号 5.25 pt

波动值取上界

版头

版头由以下元素构成

  • 份号。6位3号阿拉伯数字1。顶格,版心左上第一行。
  • 密级和保密期限。3号黑体。顶格,版心左上第二行。
  • 紧急程度。3号黑体。顶格,版心左上。若无份号、密级则在第一行/
  • 发文机关标志。定为 addresser,上边缘(padding-top)距版心上缘35mm
  • 发文字号。定为 filenum。发文机关下空两行
  • 签发人。定为 Signer。浮动布局。
  • 版头中的分隔线。定为 headerline。发文字号下4mm处,与版心等宽,红色。若为党相关文件,则居中加红色五角星(已由js实现)

由于发文机关标志在定位上是版心上缘的35mm,而版心上边距为36mm,即绝对距离为71mm。由于打印时可以自定义边距,因此上边距保持35mm即可。此外,其间的其他元素都是浮动的。

用js在【发文机关标志】元素中水平居右、垂直居中插入“文件”。应用flex实现,以确保无“文件”时,联署机关不错位。

上行文发文字号居左空一字,与最后一个签发人同行

主体

标题

title

  • 一般用2号小标宋体字
  • 在版头线下空二行
  • 居中
  • 分行。回行时,要做到词意完整,排列对称,长短适宜,间距恰当,标题排列应当使用梯形或菱形。

标题中的多个发文单位间,视情况使用空格,一般用全角空格 &emsp;

主送机关

addressee,收件单位

  • 标题下空一行
  • 居左
  • 顶格,回行时仍顶格
  • 最后一个机关名称后标全角冒号(用伪类加冒号)
  • 如主送机关名称过多导致公文首页不能显示正文时,应当将主送机关名称移至版记

一般地,规定当所有主送机关名称的字数大于N个字时,执行移至版记,由js实现。

正文

  • 首页必须显示正文。
  • 一般用3号仿宋体字
  • 主送机关名称下一行
  • 每个自然段左空二字,回行顶格。
  • 文中结构层次序数依次可以用“一、”“(一)”“1.”“(1)”标注;一般第一层用黑体字、第二层用楷体字、第三层和第四层用仿宋体字标注。
结构层次 标注 字体
h2 一、 黑体
h3 (一) 楷体
h4 1. 仿宋
h5 (1) 仿宋

附件说明

enclosure

  • 在正文下空一行
  • 左空二字编排“附件”二字,后标全角冒号和附件名称。
  • 如有多个附件,使用阿拉伯数字标注附件顺序号(如“附件:1.×××××”);
  • 附件名称后不加标点符号。附件名称较长需回行时,应当与上一行附件名称的首字对齐。

悬挂对齐

版记

抄送机关

  • 如有抄送机关,一般用4号仿宋体字
  • 在印发机关和印发日期之上一行、左右各空一字编排。
  • “抄送”二字后加全角冒号和抄送机关名称,回行时与冒号后的首字对齐,最后一个抄送机关名称后标句号。
  • 如需把主送机关移至版记,除将“抄送”二字改为“主送”外,编排方法同抄送机关。
  • 既有主送机关又有抄送机关时,应当将主送机关置于抄送机关之上一行,之间不加分隔线。

  1. 阿拉伯数字字体无规定。拟用times new roman↩︎