# ldesign-official-document **Repository Path**: ldesign-v1/ldesign-official-document ## Basic Information - **Project Name**: ldesign-official-document - **Description**: ????? - ???????????????? - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-12 - **Last Updated**: 2026-04-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # @ldesign/official-document 公文编辑器核心模块 - 红头文件可视化编排与公文流转展示 ## 📋 项目简介 `@ldesign/official-document` 是一个基于GB/T 9704-2012党政机关公文格式国家标准的公文编辑器核心库。它提供了完整的公文编辑、渲染、校验、导出功能,支持多种公文模板,适用于政府机关、企事业单位的公文处理系统。 ## ✨ 核心特性 ### 📄 公文模板支持 - **红头文件(下行文)** - 标准下行公文模板,用于通知、决定、批复等 - **红头文件(上行文)** - 需标注签发人的上行公文,用于请示、报告等 - **信函格式** - 平级机关间公文往来,用于函、复函等 - **命令(令)** - 行政法规和规章发布 - **会议纪要** - 会议情况和议定事项记录 ### 🔧 核心功能 - **可视化编辑器** - 支持拖拽排版、实时预览 - **公文格式校验** - 基于GB/T 9704-2012标准的格式校验 - **渲染与导出** - 生成符合标准的HTML格式公文 - **主题切换** - 支持明/暗两种主题模式 - **打印支持** - 支持A4纸张精确排版打印 - **事件系统** - 完整的编辑器事件监听机制 ### 📐 国标规范 - **字体规范** - 仿宋(正文)、黑体(一级标题)、楷体(签发人)、小标宋(公文标题) - **字号规范** - 三号字(16pt)、四号字(14pt)、二号字(22pt) - **页面设置** - A4纸张(210×297mm),国标页边距 - **行距规范** - 正文行距28磅 ## 🚀 快速开始 ### 安装 ```bash # 使用npm npm install @ldesign/official-document # 使用pnpm pnpm add @ldesign/official-document # 使用yarn yarn add @ldesign/official-document ``` ### 基础使用 ```typescript import { OfficialDocumentEditor, createEditor } from '@ldesign/official-document' // 创建编辑器实例 const editor = createEditor({ container: '#editor', document: { issuer: '某某市人民政府办公室', title: '关于开展年度工作总结的通知', template: 'red-header', direction: 'downward', securityLevel: 'public', urgency: 'normal', docNumber: '某政办发〔2024〕1号', recipient: '各区、县人民政府,市政府各委、办、局:', body: `

为全面总结2024年度各项工作成绩,科学谋划2025年度工作部署,现将有关事项通知如下。

`, date: '2024年11月15日', footer: { copyTo: { agencies: ['市委办公室', '市人大常委会办公室'] }, printAgency: '某某市人民政府办公室', printDate: '2024年11月15日', }, }, theme: 'light', readonly: false, }) ``` ### 模板使用 ```typescript import { templates, getTemplateConfig } from '@ldesign/official-document' // 获取红头文件(下行文)模板 const config = getTemplateConfig('redHeaderDownward') // 创建编辑器并应用模板 const editor = createEditor({ container: '#editor', document: config, }) // 查看所有可用模板 console.log('可用模板:', Object.keys(templates)) ``` ### 公文校验 ```typescript // 校验公文格式 const validation = editor.validate() if (validation.valid) { console.log('✅ 公文格式符合规范') } else { console.error('❌ 公文格式错误:', validation.errors) console.warn('⚠️ 格式建议:', validation.warnings) } ``` ### 导出与打印 ```typescript // 导出HTML文件 editor.downloadHTML('公文.html') // 获取HTML字符串 const html = editor.toHTML() // 获取CSS样式 const css = editor.toCSS() // 打印公文 editor.print() // 导出完整HTML文件(包含样式) const fullHTML = editor.exportHTML() ``` ## 📁 项目结构 ``` official-document/ ├── packages/ │ ├── core/ # 核心库 │ │ ├── src/ │ │ │ ├── index.ts # 模块入口 │ │ │ ├── editor.ts # 编辑器核心类 │ │ │ ├── renderer.ts # 公文渲染器 │ │ │ ├── validators.ts # 公文格式校验器 │ │ │ ├── templates.ts # 公文模板预设 │ │ │ └── types.ts # TypeScript类型定义 │ │ └── package.json │ └── vue/ # Vue组件封装 │ ├── src/ │ └── package.json ├── playground/ # 演示应用 ├── package.json # 项目配置 └── README.md # 项目文档 ``` ## 🔧 API 参考 ### OfficialDocumentEditor 类 #### 构造函数 ```typescript new OfficialDocumentEditor(options: EditorOptions) ``` #### 属性 - `config` - 当前公文配置(只读) - `theme` - 当前主题 - `readonly` - 是否只读模式 - `isDestroyed` - 是否已销毁 #### 方法 - `setConfig(config)` - 替换整个公文配置 - `updateConfig(partial)` - 部分更新公文配置 - `setTemplate(template)` - 切换模板 - `setTheme(theme)` - 切换主题 - `setReadonly(readonly)` - 设置只读模式 - `toRenderResult()` - 获取渲染结果 - `toHTML()` - 获取HTML字符串 - `toCSS()` - 获取CSS样式 - `renderTo(container)` - 渲染到指定容器 - `validate()` - 校验公文格式 - `exportHTML()` - 导出完整HTML文件 - `downloadHTML(filename?)` - 下载HTML文件 - `print()` - 打印公文 - `on(event, callback)` - 注册事件监听 - `off(event, callback)` - 移除事件监听 - `clone()` - 克隆编辑器配置 - `destroy()` - 销毁实例 ### 事件类型 - `change` - 公文配置变化时触发 - `template-change` - 模板切换时触发 - `validate` - 校验完成后触发 - `ready` - 编辑器准备就绪时触发 - `destroy` - 编辑器销毁时触发 ### 校验函数 ```typescript validateDocument(config: DocumentConfig): ValidationResult getSecurityLabel(level: string): string getUrgencyLabel(level: string): string ``` ### 渲染函数 ```typescript renderDocument(config: DocumentConfig, theme?: ThemeMode): RenderResult getDocumentCSS(theme?: ThemeMode): string ``` ## 📐 国标规范说明 ### 字体标准 | 用途 | 字体 | 字号 | |------|------|------| | 正文 | 仿宋 | 三号(16pt) | | 一级标题 | 黑体 | 三号(16pt) | | 公文标题 | 小标宋 | 二号(22pt) | | 签发人 | 楷体 | 三号(16pt) | | 版记 | 仿宋 | 四号(14pt) | ### 页面设置 | 项目 | 尺寸 | |------|------| | 纸张 | A4(210×297mm) | | 上边距 | 37mm | | 下边距 | 35mm | | 左边距 | 28mm | | 右边距 | 26mm | | 正文行距 | 28磅 | ## 🎨 主题支持 ### 亮色主题 - 背景色:#ffffff - 文字颜色:#000000 - 边框颜色:#e5e5e5 ### 暗色主题 - 背景色:#1a1a1e - 文字颜色:#e4e4e7 - 边框颜色:#333333 ## 📝 使用场景 1. **政府机关公文系统** - 符合国标的公文起草、审批、发布 2. **企事业单位OA系统** - 内部公文、通知、报告的编制 3. **电子政务平台** - 在线公文编辑与预览 4. **公文模板管理** - 标准化公文模板库建设 5. **公文格式培训** - 公文格式规范教学工具 ## 🔗 相关模块 - `@ldesign/official-document-vue` - Vue组件封装 - `@ldesign/stamp` - 电子印章集成 - `@ldesign/signature` - 手写签名集成 - `@ldesign/form` - 表单组件(用于公文要素编辑) ## 📄 许可证 MIT License ## 🤝 贡献指南 欢迎提交Issue和Pull Request。在提交代码前,请确保: 1. 代码符合项目编码规范 2. 添加相应的单元测试 3. 更新相关文档 4. 遵循GB/T 9704-2012国家标准 ## 📞 联系方式 - 项目维护:LDesign Team - 问题反馈:通过GitHub Issues提交 - 官方文档:[项目Wiki](https://github.com/ldesign/official-document/wiki) --- **注意**:本模块严格遵循GB/T 9704-2012党政机关公文格式国家标准,生成的公文格式符合国家规范要求。