news 2026/7/10 18:06:56

医院OA系统集成百度UMEDITOR后,如何高效处理PDF文献中的图片转存?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
医院OA系统集成百度UMEDITOR后,如何高效处理PDF文献中的图片转存?

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/7/6 1:40:54

【20天学C++】Day 18: C++14/17新特性

【20天学C】Day 18: C14/17新特性 &#x1f4c5; 学习时间&#xff1a;3-4小时 &#x1f3af; 学习目标&#xff1a;掌握C14/17实用新特性 &#x1f4a1; 难度&#xff1a;★★★☆☆ 1. C14新特性 1.1 泛型Lambda #include <iostream> #include <vector> #inclu…

作者头像 李华
网站建设 2026/7/1 2:25:26

【20天学C++】Day 19: 多线程编程

【20天学C】Day 19: 多线程编程 &#x1f4c5; 学习时间&#xff1a;4-5小时 &#x1f3af; 学习目标&#xff1a;掌握C多线程基础 &#x1f4a1; 难度&#xff1a;★★★★☆ 1. 线程基础 1.1 创建线程 #include <iostream> #include <thread> using namespace …

作者头像 李华
网站建设 2026/7/4 7:42:41

【20天学C++】Day 20: 综合项目与进阶

【20天学C】Day 20: 综合项目与进阶 &#x1f4c5; 学习时间&#xff1a;5-6小时 &#x1f3af; 学习目标&#xff1a;综合运用所学知识&#xff0c;了解进阶方向 &#x1f4a1; 难度&#xff1a;★★★★☆ 1. 综合项目&#xff1a;简易学生管理系统 1.1 项目结构 StudentMa…

作者头像 李华
网站建设 2026/7/1 16:33:13

GB/T4996-2025相较于GB/T4996-2014版的核心区别如下

1. 名称与范围标准名称简化为《平托盘 试验方法》&#xff0c;删除 “联运通用”。适用范围扩展&#xff0c;不再限定公路、铁路、水路联运&#xff0c;覆盖所有平托盘设计、生产、检验及使用。2. 术语与定义更改 “平托盘”“额定载荷” 等 10 个术语定义&#xff0c;新增 “叉…

作者头像 李华
网站建设 2026/7/1 6:56:21

硕士博士论文AI率要求是多少?2026年标准及降AI攻略

硕士博士论文AI率要求是多少&#xff1f;2026年标准及降AI攻略 最近很多研究生问我&#xff1a;硕士/博士论文的AI率要求是多少&#xff1f; 各学校标准不完全一样&#xff0c;但大致范围是明确的。这篇文章帮你搞清楚2026年的标准&#xff0c;以及怎么达标。 2026年AI率标准…

作者头像 李华