如之前所说公文排版主要有两个标准,一个是GBT9704-2012,一个是GBT33476.2-2016,两个标准其实是一样的,主要9704针对的是印刷的最终展示结果,33476.2针对的是文字处理软件的设置,因此,我们应该按照33476.2来设置。

function 页边距设置() {let doc = Application.ActiveDocument;let pageSetup = doc.PageSetup;pageSetup.TopMargin = 34.58 * 2.834645669;pageSetup.BottomMargin = 32.58 * 2.8346456695;pageSetup.LeftMargin = 28 * 2.834645669;pageSetup.RightMargin = 26 * 2.834645669;// 设置页眉页脚距离边界// 没看到设置页眉的相关标准,先保留//pageSetup.HeaderDistance = 15 * 2.835;pageSetup.FooterDistance = 25.53 * 2.834645669;}
1英寸=25.4mm,1英寸=72磅,因此1厘米约等于28.35磅,即1mm=72/25.4=2.834645669磅,wps代码中的数值均是以磅为单位,虽说官方有自带英寸转换磅的函数,我们还是直接用mm乘上转换系数计算,方便修改和理解。这里上边距虽然说是设为34.58mm,但是实际上wps的精度只能到0.01mm,因此实际页边距设置为34.6mm就是这么来的,下边距32.6mm同理。
根据页码短线“—”距版心7mm,下边距35mm,因此短线“—”距页面下边缘28mm, 页面四号字14磅约4.94mm,按短线“—”占字高一半2.47计算,页码下边缘距页面下边缘28-2.47=25.53mm。wps官方智能公文是18.5mm,但是这个数据不知道怎么来的,刚好差7mm,后面是插入一个段落间距,无论是三号字还是四号字都凑不出7mm,对于wps官方智能公文插件来说这个值好像没什么用?但是我们自己用不设置会出错?
二、网格设置
function 网格设置() {let doc = Application.ActiveDocument;doc.PageSetup.LayoutModeLayoutMode = 0;//wdLayoutModeGrid文本排放于网格之上;用户指定行数和每行的字符数,当用户键入时,WPS 不自动使字符与网格线对齐。doc.PageSetup.LinesPage = 22;doc.PageSetup.CharsLine = 28;}
doc.PageSetup.LayoutModeLayoutMode = 1function 全文设置() {let selection = Application.Selection;selection.WholeStory();selection.Range.WholeStory();(obj=>{obj.LineSpacingRule = 4;//wdLineSpaceExactly;obj.LineSpacing = 29.61;//行间距obj.FirstLineIndent = 0;obj.OutlineLevel = 10;//wdOutlineLevelBodyText;obj.DisableLineHeightGrid = 0;obj.ReadingOrder =1;//从左到右1, wdReadingOrderLtr;obj.AutoAdjustRightIndent = -1;obj.KeepWithNext = 0;obj.KeepTogether = 0;obj.PageBreakBefore = 0;obj.FarEastLineBreakControl = -1;obj.WordWrap = -1;obj.HangingPunctuation = -1;obj.HalfWidthPunctuationOnTopOfLine = 0;obj.AddSpaceBetweenFarEastAndAlpha = -1;obj.AddSpaceBetweenFarEastAndDigit = -1;obj.BaseLineAlignment = 4;//wdBaselineAlignAuto;obj.Alignment = 0;//左对齐左0中1右2obj.SpaceBefore = 0; //段前obj.SpaceAfter = 0; //段后obj.CharacterUnitFirstLineIndent = 2; // 首行缩进obj.ParagraphFormat.Alignment =3; //wdAlignParagraphJustify ,3 完全两端对齐。})(selection.ParagraphFormat);(obj=>{obj.Size = 16;obj.NameFarEast = "仿宋_GB2312";//根据需要设置obj.NameAscii = "Times New Roman"; // 西文通常配合使用obj.Underline = 0;//无下划线wdUnderlineNone;obj.EmphasisMark =0;//没有着重号 wdEmphasisMarkNone;obj.Hidden = 0;obj.Shadow = 0;obj.Outline = 0;obj.Emboss = 0;obj.Engrave = 0;obj.Scaling = 100;obj.NameBi = "CESI宋体-GB18030";//复杂字体obj.SizeBi = 16;})(selection.Font);// 取消全选,将光标移回文档开头,避免影响后续操作selection.Collapse(1); // wdCollapseStart}
,全选设置一下段落间距、首行缩进、字体、字号、两端对齐。根据33476.2,设置版心为297-34.58-32.58=229.84mm,实际229.8mm,有22个完整的行,则行间距设为229.8/22*2.835=29.6128磅。三号字体16磅,四号字体14磅。
夜雨聆风