Skill: a-lhliang/gov-doc-writing (version 1.7.1)

--- name: "国央企word文档" description: "此技能用于创建符合中国政府及央企规范的Word文档(.docx)。当用户要求创建公文、国央企文档、规范文书、正式报告等需要特定中国公文格式的文档时使用此技能。" author: "刘洪亮" version: "1.5" --- # 国央企Work文档创建技能 本技能用于创建符合中国政府及央企规范的Word文档(.docx)，使用Microsoft Word最新格式。 ## 文档格式规范 ### 页面设置 | 属性 | 值 | |------|-----| | 纸张 | A4 | | 上边距 | 3.7厘米 | | 下边距 | 3.5厘米 | | 左边距 | 2.8厘米 | | 右边距 | 2.6厘米 | | 页码 | 居中显示，宋体四号 | ### 字体规范 | 样式 | 中文字体 | 西文字体 | 字号 | |------|----------|----------|------| | 首页大标题 | 方正小标宋简体 (FZXiaoBiaoSong-B05S) | Times New Roman | 小二号 (18pt) | | 正文 | 方正仿宋简体 (FZFangSong-Z02S) | Times New Roman | 小三号 (15pt) | | 一级标题 | 黑体 | Times New Roman | 小三号 (15pt) | | 二级标题 | 楷体 | Times New Roman | 小三号 (15pt) | | 三级标题 | 方正仿宋简体 (FZFangSong-Z02S) | Times New Roman | 小三号 (15pt) 加粗 | | 页码 | 宋体 | - | 四号 (14pt) | | 表格 | 方正仿宋简体 (FZFangSong-Z02S) | Times New Roman | 小五号 (9pt) | ### 行间距 | 样式 | 行间距 | |------|--------| | 首页大标题 | 固定28磅 | | 正文 | 固定28磅 | | 一级标题 | 固定28磅 | | 二级标题 | 固定28磅 | | 三级标题 | 固定28磅 | | 图片 | 单倍行距 | | 表格 | 单倍行距 | ### 段落格式 | 样式 | 序号格式 | 首行缩进 | 大纲级别 | |------|----------|----------|----------| | 正文有缩进 | 无 | 2字符 | - | | 一级的标题 | 一、二、三、 | 2字符 | 1级 | | 二级的标题 | （一）、（二）、（三）、 | 2字符 | 2级 | | 三级的标题 | 1.、2.、3.、 | 2字符 | 3级 | ## 样式名称 创建文档时，必须使用以下样式名称： - `首页大标题` - 首页大标题 - `正文有缩进` - 正文段落 - `一级的标题` - 一级标题 - `二级的标题` - 二级标题 - `三级的标题` - 三级标题 - `图片样式` - 图片 - `表格样式` - 表格 - `页码样式` - 页脚页码 ## 使用方法 ### 方式一：使用JavaScript脚本创建文档 ```javascript const { createDocument, createTitleParagraph, createBodyParagraph, createLevel1Heading, createLevel2Heading, createLevel3Heading, createTable, createImageParagraph, CHINESE_FONTS, FONT_SIZES, CONTENT_WIDTH, Packer, BorderStyle, WidthType, ShadingType, VerticalAlign, Paragraph, TextRun, Table, TableRow, TableCell, Footer, ImageRun, } = require('~/.workbuddy/skills/gov-doc-writing/scripts/create_gov_doc.js'); // 创建文档 const doc = createDocument({ title: '文档标题', sections: [ // 首页大标题 createTitleParagraph('这是文档标题'), // 一级标题 createLevel1Heading('第一章', 0), // 输出: 一、第一章 createLevel1Heading('第二章', 1), // 输出: 二、第二章 // 二级标题 createLevel2Heading('第一节', 0), // 输出: （一）第一节 createLevel2Heading('第二节', 1), // 输出: （二）第二节 // 三级标题 createLevel3Heading('第一点', 0), // 输出: 1、第一点 createLevel3Heading('第二点', 1), // 输出: 2、第二点 // 正文 createBodyParagraph('这是正文内容，首行自动缩进2字符。'), // 表格 createTable( [ { children: ['表头1', '表头2', '表头3'] }, { children: ['内容1', '内容2', '内容3'] }, ], { columnWidths: [2000, 2000, 2000] } ), ] }); // 生成文件 Packer.toBuffer(doc).then(buffer => { fs.writeFileSync('output.docx', buffer); }); ``` ### 方式二：使用CLI命令 ```bash node scripts/create_gov_doc.js output.docx '{ "title": "文档标题", "body": [ {"type": "heading1", "text": "第一章", "number": 0}, {"type": "paragraph", "text": "正文内容"}, {"type": "table", "rows": [...], "columnWidths": [2000, 2000, 2000]} ] }' ``` ## 表格规范 - 表格总宽度 = 内容宽度（A4宽度 - 左右边距） - 列宽用最后一列吸收余量，确保精确等于内容宽度 - 表头：灰色底 (#D9D9D9)、加粗、居中 - 内容：白色底、居中、小五号 (9pt) 字体 - 边框：单线黑色 ```javascript // 表格示例 const border = { style: BorderStyle.SINGLE, size: 1, color: "000000" }; const borders = { top: border, bottom: border, left: border, right: border }; // 表头行 new TableRow({ tableHeader: true, children: [ new TableCell({ borders, shading: { fill: "D9D9D9", type: ShadingType.CLEAR }, children: [new Paragraph({ children: [new TextRun({ text: "表头", bold: true })] })] }) ] }); ``` ## 图片规范 - 行间距：单倍行距 - 对齐：居中 - 样式名称：`图片样式` ## 文档属性 - 删除文档作者（`dc:creator` 和 `lastModifiedBy` 留空或不写入） - 在创建文档时不要设置 `creator` 属性，或设置为空字符串 ## 完整示例 ```javascript const fs = require('fs'); const { Document, Packer, Paragraph, TextRun, Table, TableRow, TableCell, Footer, BorderStyle, WidthType, ShadingType, VerticalAlign, PageNumber, ImageRun, AlignmentType, HeadingLevel, LevelFormat, createTitleParagraph, createBodyParagraph, createLevel1Heading, createLevel2Heading, createLevel3Heading, createTable, createImageParagraph, createDocument, CHINESE_FONTS, FONT_SIZES, CONTENT_WIDTH, PAGE_MARGINS, LINE_SPACING_EXACT_28 } = require('~/.workbuddy/skills/gov-doc-writing/scripts/create_gov_doc.js'); // 内容构建 const sections = [ createTitleParagraph('关于XXX工作的报告'), createLevel1Heading('一、基本情况', 0), createBodyParagraph('这里是正文内容，详细描述基本情况。'), createBodyParagraph('继续描述相关内容和细节。'), createLevel1Heading('二、主要做法', 1), createLevel2Heading('（一）加强组织领导', 0), createBodyParagraph('具体做法描述...'), createLevel2Heading('（二）完善制度建设', 1), createBodyParagraph('制度建设内容...'), createLevel1Heading('三、存在问题', 2), createBodyParagraph('当前存在以下问题：'), createLevel3Heading('问题一', 0), createBodyParagraph('问题一的具体描述。'), createLevel3Heading('问题二', 1), createBodyParagraph('问题二的具体描述。'), createLevel1Heading('四、下一步计划', 3), createBodyParagraph('针对以上问题，计划采取以下措施...'), ]; // 创建文档（不设置作者） const doc = createDocument({ title: '关于XXX工作的报告', sections }); // 生成并保存 Packer.toBuffer(doc).then(buffer => { fs.writeFileSync('report.docx', buffer); console.log('文档已生成: report.docx'); }); ``` ## 注意事项 1. **字号转换**：Word中的"号"转换为半磅值（如小三号=30，小二号=36，四号=28，小五号=18） 2. **行间距固定28磅**：line值设置为560（28 × 20），lineRule设置为"exact" 3. **首行缩进**：使用 `indent: { firstLine: charWidth * 2 }`，字符宽度约等于字号的一半 4. **页码**：仅在页脚居中显示，使用宋体四号 5. **不要封面**：文档从首页大标题开始，不创建封面页 6. **文档作者**：不设置或留空 ## 相关文件 - `scripts/create_gov_doc.js` - 核心创建函数库


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)