news 2026/2/22 8:16:22

军工行业OA系统如何集成百度编辑器实现WORD公式导入?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
军工行业OA系统如何集成百度编辑器实现WORD公式导入?

2023年XX月XX日 | 企业级编辑器插件选型与开发日志


一、需求背景与市场调研

1.1 核心需求痛点
  • 政务项目特殊性:需100%兼容信创环境(麒麟/UOS+龙芯/鲲鹏)
  • IE8兼容:部分政务系统仍运行在Windows XP+IE8环境
  • 富文本保真:需支持政府公文要求的GB2312字体、MathType公式等复杂样式
  • 安全合规:所有文件需通过国产化加密算法传输(SM4)
1.2 厂商评估结果
厂商信创认证IE8支持买断报价央企案例
Microsoft 365齐全不支持¥398~498/人/年国务院某部委
WPS 365齐全不支持¥199~599/人/年国务院某部委
永中Office齐全不支持¥199~599/人/年国务院某部委
腾讯文档齐全不支持¥200~600/人/年国务院某部委
钉钉文档齐全不支持¥200~600/人/年国务院某部委
飞书齐全不支持¥200~600/人/年国务院某部委
石墨齐全不支持¥200~600/人/年国务院某部委
厂商A齐全支持¥85万国务院某部委
厂商B缺龙芯不支持¥45万某省政务云
厂商C齐全支持¥58万3家副省级政府

决策:选择厂商C,满足预算与技术红线,附赠源代码托管服务。


二、技术实施方案

2.1 架构设计

HTTP

SM4加密

JDBC

UEditor插件

SpringBoot代理层

华为云OBS

MySQL集群

信创存储服务器

2.2 关键代码实现

前端插件核心逻辑(Vue2适配版)

// ueditor-word-plugin.jsUE.registerUI('wordpaste',function(editor){// 创建按钮varbtn=newUE.UI.Button({name:'wordpaste',title:'公文粘贴',onclick:function(){// 监听粘贴事件editor.addListener('paste',function(type,clipboardData){if(clipboardData.files.length>0){// 调用华为云OBS上传接口uploadToHuaweiOBS(clipboardData.files[0]).then(url=>{editor.execCommand('insertHtml',``);});}});}});returnbtn;});// 信创环境检测functioncheckOS(){constua=navigator.userAgent;if(ua.indexOf('Kylin')!==-1)return'kylin';if(ua.indexOf('Loongson')!==-1)return'loongarch';}

后端文件处理(SpringBoot + 华为云OBS SDK)

@RestController@RequestMapping("/api/upload")publicclassGovFileController{@PostMapping("/word")publicResponseEntityhandleWordUpload(@RequestParam("file")MultipartFilefile,@RequestHeader("X-SM4-Key")Stringsm4Key){// 国密算法解密SM4Utilsm4=newSM4Util(sm4Key);byte[]decrypted=sm4.decrypt(file.getBytes());// 存储到华为云OBSObsClientobs=newObsClient("AK","SK","https://obs.cn-east-3.myhuaweicloud.com");StringobjectKey="gov/"+UUID.randomUUID()+".docx";obs.putObject("bucket-name",objectKey,newByteArrayInputStream(decrypted));returnResponseEntity.ok(Map.of("url","https://obs.example.com/"+objectKey,"signature",SM3Util.hash(file.getOriginalFilename())));}}

三、信创适配专项

3.1 国产化测试矩阵
环境测试结果
银河麒麟v10 + 龙芯公式渲染异常
统信UOS + 飞腾字体缺失
IE8 + Windows XP插件加载超时

解决方案

  1. 针对龙芯环境增加WASM版公式渲染器
  2. 预装GB2312字体包到系统镜像
  3. IE8采用ActiveX降级方案

四、商务与交付

4.1 合同关键条款
  • 授权模式:¥88万买断(含源代码及五年维护)
  • 罚则:若信创适配不达标,赔付合同金额200%
  • 交付物
    • 通过等保2.0三级测评报告
    • 中央政府采购网入围证书
    • 国资委某局项目验收单
4.2 实施里程碑
  • 第1周:完成UEditor插件内核开发
  • 第3周:通过鲲鹏920兼容性认证
  • 第6周:在XX省政务云完成部署

五、风险预警

  1. 龙芯性能瓶颈:实测在LoongArch架构下,100页Word解析耗时较x86长3倍
  2. 字体版权风险:需单独采购方正GB2312字体商业授权
  3. IE8内存泄漏:需每30分钟强制刷新编辑器实例

应对措施:建立专项技术保障基金(预算¥15万)。

(注:以上代码需配合厂商提供的SDK使用,敏感信息已脱敏处理)

复制插件目录

引入插件文件

UEditor 1.4.3.3示例

注意:不要重复引入jquery,如果您的项目已经引入了jq,则不用再引入jq-1.4

在工具栏中增加插件按钮

//工具栏上的所有的功能按钮和下拉框,可以在new编辑器的实例时选择自己需要的重新定义toolbars:[["fullscreen","source","|","zycapture","|","wordpaster","importwordtoimg","netpaster","wordimport","excelimport","pptimport","pdfimport","|","importword","exportword","importpdf"]]

初始化控件

varpos=window.location.href.lastIndexOf("/");varapi=[window.location.href.substr(0,pos+1),"asp/upload.asp"].join("");WordPaster.getInstance({//上传接口:http://www.ncmem.com/doc/view.aspx?id=d88b60a2b0204af1ba62fa66288203edPostUrl:api,//为图片地址增加域名:http://www.ncmem.com/doc/view.aspx?id=704cd302ebd346b486adf39cf4553936ImageUrl:"",//设置文件字段名称:http://www.ncmem.com/doc/view.aspx?id=c3ad06c2ae31454cb418ceb2b8da7c45FileFieldName:"file",//提取图片地址:http://www.ncmem.com/doc/view.aspx?id=07e3f323d22d4571ad213441ab8530d1ImageMatch:''});//加载控件

注意

如果接口字段名称不是file,请配置FileFieldName。ueditor接口中使用的upfile字段

点击查看详细教程

配置ImageMatch

匹配图片地址,如果服务器返回的是JSON则需要通过正则匹配

ImageMatch:'',

点击参考链接

配置ImageUrl

为图片地址增加域名,如果服务器返回的图片地址是相对路径,可通过此属性添加自定义域名。

ImageUrl:"",

点击查看详细教程

配置SESSION

如果接口有权限验证(登陆验证,SESSION验证),请配置COOKIE。或取消权限验证。
参考:http://www.ncmem.com/doc/view.aspx?id=8602DDBF62374D189725BF17367125F3

效果

编辑器界面

导入Word文档,支持doc,docx

导入Excel文档,支持xls,xlsx

粘贴Word

一键粘贴Word内容,自动上传Word中的图片,保留文字样式。

Word转图片

一键导入Word文件,并将Word文件转换成图片上传到服务器中。

导入PDF

一键导入PDF文件,并将PDF转换成图片上传到服务器中。

导入PPT

一键导入PPT文件,并将PPT转换成图片上传到服务器中。

上传网络图片

下载示例

点击下载完整示例

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/21 11:28:07

LLVM后端入门9:JIT支持

目标机器的实现可以选择性地包含一个即时(JIT)代码生成器,该生成器会将机器码和辅助结构作为二进制输出进行生成,这些输出可直接写入内存。要实现这一点,可通过执行以下步骤来实现 JIT 代码生成: 编写 XXXCodeEmitter.cpp 文件,其中包含一个机器函数 pass,用于将目标机…

作者头像 李华
网站建设 2026/2/8 22:20:56

系统软件缺少comct332.ocx无法启动 免费下载方法分享

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…

作者头像 李华
网站建设 2026/2/18 7:33:28

你不是在和AI竞争,你是在和“不用AI的自己”

导言:被误读的竞争关系 凌晨三点的告警邮件、重复的冒烟测试、永无止境的回归用例...当ChatGPT写出第一条测试脚本时,测试圈掀起海啸式恐慌。但真正需要警惕的并非AI,而是我们面对技术变革时固化的思维模式——软件测试的竞争本质&#xff0…

作者头像 李华
网站建设 2026/2/18 13:16:40

‌AI驱动的竞品App测试用例自动生成

AI已能系统化生成竞品测试用例,但需构建“行为建模→差异识别→优先级排序”闭环流程‌当前,软件测试领域正经历从“人工枚举功能点”向“AI驱动行为分析”的范式迁移。基于对50竞品App的自动化分析,可实现测试用例的高效生成,其核…

作者头像 李华
网站建设 2026/2/16 8:17:22

【Java毕设源码分享】基于springboot+vue的露营地管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/2/21 16:07:38

如何在HTML5中使用js实现文件夹上传?

第一章:毕业设计の终极挑战 "同学,你这毕业设计要做文件管理系统?还要支持10G大文件上传?"导师推了推眼镜,我仿佛看到他头顶飘着"这届学生真难带"的弹幕。 "是的老师!还要兼容I…

作者头像 李华