This skill creates Chinese official documents (公文) following standardized formatting requirements based on:
元素字体字号粗体说明标题方正小标宋简体二号否多行标题行距38磅正文方正仿宋三号否行距28磅一级标题方正黑体三号否格式:"一、"二级标题方正楷体三号否格式:"(一)"三级标题方正仿宋三号否格式:"1." (不能用"1、")四级标题方正仿宋三号否格式:"(1)"附件序号方正仿宋三号否格式:"1." "2."
参考 references/gongwen_template.js 获取完整模板代码:
javascript
// 创建公文文档
const { Document, Packer, Paragraph, TextRun, AlignmentType, LineRuleType } = require('docx');
const fs = require('fs');
// 公文字体映射
const FONTS = {
xiaobiaosong: '方正小标宋简体', // 标题
fangsong: '方正仿宋', // 正文
heiti: '方正黑体', // 一级标题
kaiti: '方正楷体', // 二级标题
};
// 公文字号映射 (二号=22pt, 三号=16pt)
const SIZES = {
erhao: 44, // 二号 (22pt = 44 half-points)
sanhao: 32, // 三号 (16pt = 32 half-points)
};
const doc = new Document({
sections: [{
properties: {
page: {
size: { width: 11906, height: 16838 }, // A4 in DXA
margin: { top: 1570, bottom: 1484, left: 1134, right: 1106 }
// 对应: 上37mm, 下35mm, 左28mm, 右26mm
}
},
children: [
// 标题
new Paragraph({
alignment: AlignmentType.CENTER,
children: [new TextRun({
text: '关于XXXX的通知',
font: FONTS.xiaobiaosong,
size: SIZES.erhao,
})],
spacing: { line: 38 * 20, lineRule: LineRuleType.AUTO }
}),
// 正文...
]
}]
});
Packer.toBuffer(doc).then(buffer => {
fs.writeFileSync('gongwen.docx', buffer);
});
参考 references/gongwen_template.cs 获取完整模板代码。
text
[标题:方正小标宋简体 二号 居中]
一、一级标题(方正黑体 三号)
(一)二级标题(方正楷体 三号)
1. 三级标题(方正仿宋 三号)
(1)四级标题(方正仿宋 三号)
正文内容(方正仿宋 三号,行距28磅)
附件:
1. 附件一名称
2. 附件二名称
类型英文用途通知Notice发布规章、布置工作报告Report向上级汇报工作决定Decision对重要事项作出决策批复Reply答复下级请示函Letter机关之间商洽工作纪要Minutes记载会议情况
公文格式要求使用特定中文字体(方正系列)。如系统未安装:
references/gongwen_template.js - docx-js 公文模板references/gongwen_template.cs - C# OpenXML 公文模板references/gb9704_2012.md - GB/T 9704-2012 简要说明