当前位置: 首页 > article >正文

医院HIS系统集成umeditor时如何解决长文档粘贴卡顿问题?

程序员的外包奇遇记Word一键粘贴大作战大家好我就是那个在安徽码PHP的秃出程序员最近接了个CMS企业官网的活儿客户爸爸突然甩来一个需求…需求来了“小张啊我们这个新闻发布系统啊能不能像Word那样直接粘贴那些老同志不会用啊”我“呃…老板您这需求…”“还有啊Word、Excel、PPT、PDF都要能导入公式啊图片啊都不能丢Latex公式要转成什么ML…”我“MathML…”“对就是这个ML还要支持公众号内容导入预算680”我“…”(内心OS680您这是要我的命啊)技术选型历险记我翻遍了GitHub试了各种开源方案方案A能导入Word但公式变成了一堆乱码方案B支持PDF但图片全丢了方案C号称全支持结果安装包比我的项目还大最后我决定——自己动手丰衣足食前端Vue3UEditor魔改方案// 在UEditor中增加导入按钮UE.registerUI(importword,function(editor){constbtnnewUE.ui.Button({name:importword,title:导入Office文档,onclick:function(){// 创建隐藏的file inputconstfileInputdocument.createElement(input)fileInput.typefilefileInput.accept.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdffileInput.onchangeasync(e){constfilee.target.files[0]if(!file)return// 显示加载中editor.setDisabled()editor.fireEvent(showmessage,{id:uploading,content:正在解析文档请稍候...})try{constformDatanewFormData()formData.append(file,file)// 调用后端API解析文档constresawaitaxios.post(/api/parse-office,formData,{headers:{Content-Type:multipart/form-data}})// 插入解析后的HTMLeditor.execCommand(insertHtml,res.data.html)}catch(err){}finally{}}fileInput.click()}})returnbtn})后端PHP处理逻辑// 文件接收接口publicfunctionparseOffice(Request$request){$file$request-file(file);if(!$file-isValid()){returnresponse()-json([error文件上传失败],400);}$extensionstrtolower($file-getClientOriginalExtension());$allowed[doc,docx,xls,xlsx,ppt,pptx,pdf];if(!in_array($extension,$allowed)){returnresponse()-json([error不支持的文件类型],400);}try{$tempPath$file-store(temp);$fullPathstorage_path(app/.$tempPath);// 根据文件类型调用不同的解析器switch($extension){casedoc:casedocx:$html$this-parseWord($fullPath);break;casexls:casexlsx:$html$this-parseExcel($fullPath);break;caseppt:casepptx:$html$this-parsePPT($fullPath);break;casepdf:$html$this-parsePDF($fullPath);break;default:thrownew\Exception(未知文件类型);}// 处理图片上传到OSS$html$this-processImages($html);returnresponse()-json([html$html]);}catch(\Exception$e){}finally{}}数学公式转换方案// Latex转MathMLprivatefunctionlatexToMathML($latex){// 使用第三方API或本地库转换$apiUrlhttps://latex2mathml.example.com/convert;$responseHttp::post($apiUrl,[latex$latex,typemathml]);if($response-successful()){return$response-json()[mathml];}// 备用方案使用本地PHP库return$this-fallbackLatexToMathML($latex);}图片处理方案// 处理HTML中的图片并上传到OSSprivatefunctionprocessImages($html){$domnew\DOMDocument();$dom-loadHTML(mb_convert_encoding($html,HTML-ENTITIES,UTF-8));$images$dom-getElementsByTagName(img);foreach($imagesas$img){$src$img-getAttribute(src);// 如果是base64图片if(strpos($src,data:image)0){$uploadedUrl$this-uploadBase64Image($src);$img-setAttribute(src,$uploadedUrl);}// 如果是本地临时图片elseif(strpos($src,/temp/)!false){$uploadedUrl$this-uploadLocalImage($src);$img-setAttribute(src,$uploadedUrl);}}// 保存处理后的HTMLreturn$dom-saveHTML();}部署与集成指南前端集成将UEditor插件打包成npm包npm install ueditor-office-import在main.js中导入并初始化插件后端准备安装PHP依赖composer require phpoffice/phpword phpoffice/phpspreadsheet配置阿里云OSS凭证部署API接口环境要求PHP 7.4开启exec函数权限用于调用外部转换工具至少100MB临时存储空间预算控制秘籍如何在680元内搞定这个需求我的秘诀是能用开源绝不自研PHPWord/PHPSpreadsheet处理Office文档UEditor作为基础编辑器数学公式转换使用开源API云服务薅羊毛阿里云OSS新用户免费额度使用按量付费的函数计算处理大文件代码复用把通用功能打包成插件下次还能用公式转换等复杂逻辑封装成微服务加入我们的QQ群遇到问题想交流经验来加群223813913群里福利多多 新人红包1-99元能不能抢到99看手气 推荐客户拿20%提成月入4万不是梦 定期分享外包项目有钱大家一起赚 技术交流无门槛从PHP到AI都能聊记住我们的口号代码写得好对象少不了需求接得多早日开豪车温馨提示本文代码仅供参考实际开发中请做好异常处理和安全性检查。公式转换部分可能需要购买商业API服务。预算680元请自行斟酌本程序员不承担因加班过度导致的发际线后移责任。复制插件目录引入插件文件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]]初始化控件varposwindow.location.href.lastIndexOf(/);varapi[window.location.href.substr(0,pos1),asp/upload.asp].join();WordPaster.getInstance({//上传接口http://www.ncmem.com/doc/view.aspx?idd88b60a2b0204af1ba62fa66288203edPostUrl:api,//为图片地址增加域名http://www.ncmem.com/doc/view.aspx?id704cd302ebd346b486adf39cf4553936ImageUrl:,//设置文件字段名称http://www.ncmem.com/doc/view.aspx?idc3ad06c2ae31454cb418ceb2b8da7c45FileFieldName:file,//提取图片地址http://www.ncmem.com/doc/view.aspx?id07e3f323d22d4571ad213441ab8530d1ImageMatch:});//加载控件注意如果接口字段名称不是file请配置FileFieldName。ueditor接口中使用的upfile字段点击查看详细教程配置ImageMatch匹配图片地址如果服务器返回的是JSON则需要通过正则匹配ImageMatch:,点击参考链接配置ImageUrl为图片地址增加域名如果服务器返回的图片地址是相对路径可通过此属性添加自定义域名。ImageUrl:,点击查看详细教程配置SESSION如果接口有权限验证登陆验证SESSION验证请配置COOKIE。或取消权限验证。参考http://www.ncmem.com/doc/view.aspx?id8602DDBF62374D189725BF17367125F3效果编辑器界面导入Word文档,支持doc,docx导入Excel文档,支持xls,xlsx粘贴Word一键粘贴Word内容自动上传Word中的图片保留文字样式。Word转图片一键导入Word文件并将Word文件转换成图片上传到服务器中。导入PDF一键导入PDF文件并将PDF转换成图片上传到服务器中。导入PPT一键导入PPT文件并将PPT转换成图片上传到服务器中。上传网络图片下载示例点击下载完整示例

相关文章:

医院HIS系统集成umeditor时如何解决长文档粘贴卡顿问题?

程序员的外包奇遇记:Word一键粘贴大作战 大家好,我就是那个在安徽码PHP的"秃"出程序员!最近接了个CMS企业官网的活儿,客户爸爸突然甩来一个需求… 需求来了! “小张啊,我们这个新闻发布系统啊…...

揭露降重套路:免费降AI工具真的存在吗?2026届毕业生必看的70%→10%避坑指南

眼瞅着毕业答辩的日子一天天逼近,大家手里的论文查重报告是不是还红得刺眼? 说实话,这届毕业生真的太难了。以前的学长学姐只用担心查重率,现在倒好,不仅要查重,还得面对那个神出鬼没的AIGC检测。 刚开始看…...

农业大数据平台如何利用umeditor插件实现Excel动态图表粘贴?

各位道友,且听我这个江西老表用带着辣椒味的普通话,讲讲如何在99元预算下,给CMS系统加上Word一键粘贴功能,顺便还能防黑客、防白嫖、防导师催稿! 一、技术方案(白嫖防身版) 前端篇(…...

LeetCode 热题-矩阵置零 螺旋矩阵 旋转图像

矩阵置零 73. 矩阵置零https://leetcode.cn/problems/set-matrix-zeroes/ 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1: 输入:matrix [[1,1,1],[1,0,1],[1,1,1]…...

查重70%急疯了?2026届降AI避坑指南:扒一扒从70%降到10%的免费工具内幕!

眼瞅着毕业答辩的日子一天天逼近,大家手里的论文查重报告是不是还红得刺眼? 说实话,这届毕业生真的太难了。以前的学长学姐只用担心查重率,现在倒好,不仅要查重,还得面对那个神出鬼没的AIGC检测。 刚开始看…...

基于STM32的指纹刷卡开锁签到考勤系统

一、系统介绍 本文详细介绍了一种基于 STM32 单片机的指纹 RFID 刷卡开锁签到考勤系统。该系统以功能强大的 STM32F103C8T6 单片机核心板为控制核心,集成了多个关键模块。用户可以根据需求选择 2.4 寸或 1.44 寸的 TFT 彩屏,用于清晰地显示系统信息和操作…...

从CAD到HMI:如何利用DXF2SVG工具实现可视化组件自动化转换

从CAD到HMI:如何利用DXF2SVG工具实现可视化组件自动化转换 在工业自动化领域,人机界面(HMI)的设计效率直接影响着整个系统的开发周期。传统HMI开发中,工程师往往需要手动重绘CAD设计图纸,既耗时又容易引入误…...

别再只会conda update了!这5个隐藏命令帮你搞定90%的环境管理难题

解锁Conda高阶玩法:5个被低估的环境管理神技 当你已经能熟练使用conda create和conda install时,是否觉得环境管理依然充满各种"玄学"问题?比如团队协作时环境复现总出岔子,或者明明删除了环境却还占用着几个G的磁盘空间…...

2025年文本分类技术全景:从模型演进到工业落地指南

1. 文本分类技术的2025年全景图 记得2018年第一次用BERT做情感分析时,那种"原来还能这样"的震撼感至今难忘。七年过去,文本分类技术已经从实验室里的玩具变成了工业流水线上的标准工具。2025年的文本分类技术栈已经形成了清晰的层级结构&#…...

Vue学习 —— 计算属性

1、计算属性介绍一句话介绍:计算属性本质就是基于已有数据做 “加工”,结果会缓存,只有依赖数据变了才重新算。更简单易懂的例子:用大白话讲:就像你有苹果和梨(原始数据),计算属性就…...

机器视觉零基础入门:(三)图像上采样实战:从原理到代码的像素填充艺术

1. 图像上采样:给照片"无中生有"的艺术 第一次接触图像上采样这个概念时,我脑海里浮现的是科幻电影里那些神奇的画面放大场景——特工们随意放大监控画面,模糊的车牌瞬间变得清晰可见。虽然现实中的技术没那么神奇,但上…...

拆解50kW光伏逆变器的硬件代码实战

三相光伏并网逆变器方案 资料 50kw组串式 主控芯片TMS32F2808,提供pcb,原理图,代码。 组成如下: 1.主控DSP板,芯片型号TMS32F2808,负责逆变器的逆变及保护控制。 原理图为pdf,pcb为AD文件,有P…...

星穹铁道革新性自动化工具:三月七小助手技术解析与应用指南

星穹铁道革新性自动化工具:三月七小助手技术解析与应用指南 【免费下载链接】March7thAssistant 🎉 崩坏:星穹铁道全自动 Honkai Star Rail 🎉 项目地址: https://gitcode.com/gh_mirrors/ma/March7thAssistant 在《崩坏&a…...

MT4移动止损实战:如何用300行代码实现智能追踪止盈(附ma.mq4改造指南)

MT4移动止损实战:300行代码构建智能追踪止盈系统 在趋势交易中,移动止损是保护利润的关键技术。许多交易者都遇到过这样的困境:当市场朝着有利方向运行时,静态止损点无法跟随价格移动,导致本该获得的利润大幅回撤。本文…...

芯片可靠性标准解析:从商规到车规的实战指南

1. 芯片可靠性标准入门:为什么商规、工规、车规差异这么大? 刚入行时,我总纳闷为什么同样功能的芯片,车规级价格能比商规贵5倍。直到有次亲眼目睹某新能源汽车因一颗电源管理芯片失效导致整车趴窝,才明白可靠性标准背后…...

告别‘从入门到放弃’:ESP32+MicroPython项目实战,用OLED做个物联网温湿度计

从零打造物联网温湿度计:ESP32MicroPython实战指南 项目背景与核心价值 在物联网技术快速普及的今天,掌握嵌入式开发已成为开发者的一项重要技能。ESP32作为一款功能强大且价格亲民的微控制器,结合MicroPython的易用性,为初学者打…...

Qt+onnxruntime实战:手把手教你部署MaskRCNN模型(附动态尺寸处理技巧)

QtONNXRuntime实战:工业级MaskRCNN模型部署全流程与动态尺寸优化 在工业检测、医疗影像和智能安防等领域,基于深度学习的实例分割技术正逐渐成为核心解决方案。本文将深入探讨如何将PyTorch训练的MaskRCNN模型高效部署到Qt应用中,特别针对实际…...

【人工智能】中国大模型“六小虎”:百模大战突围者,引领国产AI商业化新征程

中国大模型“六小虎”:百模大战突围者,引领国产AI商业化新征程 2023年被称作中国通用大模型的产业爆发元年,一场席卷科技行业的“百模大战”骤然打响。上百家企业扎堆入局,从参数竞赛到能力比拼,行业在极速爆发中迎来残酷洗牌。当潮水渐退,六家高估值AI创业独角兽从混战…...

Transformer模型探秘03-QKV矩阵在Self-Attention中的核心作用

1. QKV矩阵的物理意义揭秘 第一次接触Transformer模型时,最让我困惑的就是这三个神秘的字母:Q、K、V。它们看起来像某种密码,但实际上却是自注意力机制的核心组件。经过多次实践,我发现理解它们的物理意义比死记公式更重要。 想象…...

Meta关闭Horizon Worlds VR版

就在几年前,马克扎克伯格还激情澎湃地描绘着“元宇宙”作为下一代“具身互联网”的宏伟蓝图,甚至不惜将公司更名为“Meta”以表决心。然而,本周的一则公告标志着其战略发生了戏剧性转变:Meta宣布将关闭其面向Quest虚拟现实头显用户…...

20年如一日,坐标唐山瑞德数码城一层最北排,我们还在坚持

> 从大头显示器到现在的华为、戴尔超薄笔记本、游戏本,从路北的老街坊到全市的企业客户。很多人问:老孙,现在网上买电脑多方便,你这实体店怎么还这么忙?我说:因为服务带不走,信任买不到。电脑…...

论文免费降低ai率:DeepSeek降AI指令实测+3款工具深度测评(2026最新)

知网AIGC检测算法又更新了,很多人的检测报告一片红。不用急着慌,其实只要用对方法,就能降低ai率。 今天这篇,我整理了3组我亲测过的DeepSeek降ai指令,能把有AI味儿的文章改成符合学术规范的人话。最后还有我自己真金白…...

华为交换机策略路由实战:基于流分类的多路径智能选路

1. 为什么企业需要策略路由 想象一下你每天开车上班的场景:平时走高速路只要20分钟,但遇到早高峰时,导航会自动推荐绕城快速路避开拥堵。网络世界里的策略路由就像这个智能导航系统,它能根据数据流的"身份特征"自动选择…...

Node Js 配置环境步骤

下载Node Js 1. 浏览器搜索Node Js中文网 下载 | Node.js 中文网 2. 如果是Windows就选Windows,其他就选其他即可 3. 更改安装路径,啥都不用勾选,一直Next就可以了,安装完成后选择Finish后,删除页面 4. 安装后可以…...

日本汽车又赢了,增程连连下跌,国产车下注节油混动了

2025年增程车只卖了123.5万辆,增速大幅下降,甚至从2025年下半年起连连下滑,占电车销量的比例跌穿了一成,这让国产车大失所望,面对这样的现实部分国产车企迅速转向,开年以来多家国产车企都发布了小容量电池的…...

C++ 实战:STL List 容器自定义排序深度解析

在 C STL 中, 是一个双向循环链表。与 不同,由于 的内存空间是不连续的,它不能使用系统提供的标准算法 std::sort,而是内置了一个成员函数 。std::liststd::vectorlistsort()今天我们就通过一个“人员排序”…...

信捷八轴焊锡机程序:独立电子齿轮比设置,转盘机械手下料及自动移动料架,C语言算轴参数,含多种定...

信捷8轴焊锡机程序,采用显控触摸屏加XD5-60T10 每个轴的电子齿轮比单独设置,转盘式 机械手下料加料架,放料位置可以堆叠,放满一堆自动移动料架,直到整框装满。 程序带详细注释 原创程序 采用C语言算轴参数 含回原点…...

三菱PLC项目案例学习:自动寻槽铣槽机的编程思路与框架

三菱PLC项目案例学习之自动寻槽铣槽机 器件:三菱FX3UPLC,威纶通触摸屏,三菱伺服,基恩士光纤传感器,三菱变频器等。 控制方式:PLC接收恩士光纤传感器信号控制伺服驱动器寻槽,寻槽后,变频器控制高速电机带动…...

C#与Halcon联合开发:易学易用的通用视觉框架

C#联合halcon开发的通用视觉框架,可供初学者使用打开Visual Studio新建一个C#项目,拖入那个灰底黄框的HWindowControl控件,这玩意儿就是咱们和Halcon交互的主战场。别急着写代码,先想清楚视觉项目的通用套路——相机控制、图像处理…...

c语言知识总结(3.控制结构)

一、条件语句: 1. if与else的运用 if:条件为真(非0)时执行 if (条件) {// 成立时执行 } if-else:二选一 if (条件) {// 成立时执行 } else {// 不成立时执行 } 多分支:多选一,从上到下匹配…...