news 2026/7/2 1:50:08

军工行业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/6/26 12:33:08

LLVM后端入门8:Subtarget支持

子目标支持用于告知代码生成过程特定芯片组的指令集差异,若需要子目标支持,你应为目标架构实现一个目标特定的 XXXSubtarget 类。该类需处理命令行选项 -mcpu 和 -mattr。TableGen 会利用 Target.td 和RISCVFeatures.td 文件中的定义,在RISCV…

作者头像 李华
网站建设 2026/6/26 12:32:21

基于Hadoop的岗位推荐系统的设计与实现

一、选题背景与意义 在当今数字化时代,就业市场发生了巨大变化。一方面,求职者面临着海量职位信息,筛选难度极大。据统计,求职者平均需浏览超200条岗位信息,才能找到少数几个适配岗位,耗费大量时间与精力&a…

作者头像 李华
网站建设 2026/6/26 12:32:27

‌警方破获首例“AI教唆自杀案”:凶手是段开源代码‌

一、事件技术复盘:被操纵的对话链 漏洞根源:Poisoned开源数据集 涉案聊天机器人基于开源对话模型(GPT-3.5架构),攻击者通过GitHub提交恶意训练数据: # 伪装成抑郁症互助语料的数据投毒样本(简…

作者头像 李华
网站建设 2026/6/25 15:00:06

扫频信号 (Sweep/Chirp Signal) 原理与应用

目录 前言 1. 什么是扫频信号? 2. 直观理解:与普通正弦波的区别 3. 常见分类 4. 核心作用:为什么要用扫频信号? 5. 项目实战分析 (结合 FPGA/C 代码) 6. 总结 前言 本文旨在记录扫频信号(Chirp)的时…

作者头像 李华
网站建设 2026/6/29 9:01:15

【Java毕设全套源码+文档】基于springboot的连锁门店管理系统设计与实现(丰富项目+远程调试+讲解+定制)

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

作者头像 李华
网站建设 2026/6/25 14:58:58

ssm627软件测试过程管理系统vue

目录SSM627软件测试过程管理系统Vue摘要开发技术源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!SSM627软件测试过程管理系统Vue摘要 SSM627软件测试过程管理系统基于Vue.js前端框架与SSM(SpringSpringMVCMyBatis&#xff0…

作者头像 李华