news 2026/6/10 0:55:22

xhEditor word粘贴支持批注和修订

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
xhEditor word粘贴支持批注和修订

(推了推黑框眼镜,正色道)作为专注政企数字化解决方案的山西PHP团队,我们为该项目设计了一套高可用性技术方案:

技术架构设计

前端Vue3

xhEditor插件

Word粘贴处理

文档导入处理

图片二进制上传

文档解析服务

阿里云OSS

样式保留引擎

公式转换服务

前端核心代码(Vue3插件)

// src/plugins/xhEditorWord.jsexportdefault{install(app){app.provide('xhEditorWord',{install:(editor)=>{// 添加工具栏按钮editor.addButton('wordpaste',{title:'智能粘贴',icon:'📋',onclick:()=>{navigator.clipboard.read().then(async(data)=>{constblob=awaitdata.items[0].getAsFile();constformData=newFormData();formData.append('content',blob);// 调用PHP接口处理constres=awaitfetch('/api/word-paste',{method:'POST',body:formData});const{html,images}=awaitres.json();editor.insertHTML(html);// 批量上传图片images.forEach(img=>{constimgForm=newFormData();imgForm.append('file',img.blob);fetch('/api/upload',{method:'POST',body:imgForm}).then(r=>r.json()).then(data=>{editor.insertHTML(``);});});});}});// 微信文章粘贴处理editor.on('paste',(e)=>{constclipboard=e.clipboardData;if(clipboard.types.includes('text/html')){consthtml=clipboard.getData('text/html');constparser=newDOMParser();constdoc=parser.parseFromString(html,'text/html');// 提取微信特色图片constimgs=doc.querySelectorAll('img[data-src]');imgs.forEach(img=>{constsrc=img.getAttribute('data-src');fetch(src).then(r=>r.blob()).then(blob=>{constform=newFormData();form.append('file',blob);fetch('/api/upload',{method:'POST',body:form}).then(r=>r.json()).then(data=>{img.setAttribute('src',data.url);});});});editor.insertHTML(doc.body.innerHTML);}});}});}}

后端PHP处理逻辑

getWriter()->getOutput();// 处理公式转换preg_match_all('/{(\\\\[a-z]+)(.*?)}/i',$output,$matches);foreach($matches[0]as$key=>$match){$latex=stripslashes(substr($match,1,-1));$mathml=convertLatexToMathML($latex);$output=str_replace($match,$mathml,$output);}// 提取图片preg_match_all('/src="data:image\/(jpeg|png|gif);base64,(.*?)"/',$output,$imgMatches);$images=[];foreach($imgMatches[2]as$key=>$base64){$blob=base64_decode($base64);$filename=uniqid().'.'.$imgMatches[1][$key];file_put_contents('temp/'.$filename,$blob);$ossUrl=uploadToOSS('temp/'.$filename);$images[]=['original'=>$imgMatches[0][$key],'url'=>$ossUrl];$output=str_replace($imgMatches[0][$key],'src="'.$ossUrl.'"',$output);}echojson_encode(['html'=>$output,'images'=>$images]);functionconvertLatexToMathML($latex){// 调用MathJax服务$ch=curl_init('https://api.mathjax.org/convert');curl_setopt($ch,CURLOPT_POSTFIELDS,json_encode(['latex'=>$latex]));curl_setopt($ch,CURLOPT_HTTPHEADER,['Content-Type: application/json']);curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);$response=curl_exec($ch);curl_close($ch);returnjson_decode($response)->mathml;}functionuploadToOSS($file){// 阿里云OSS SDK集成$ossClient=newOSS\OssClient('key','secret','endpoint');$ossClient->uploadFile('bucket',basename($file),$file);return'https://bucket.oss-cn-hangzhou.aliyuncs.com/'.basename($file);}?>

项目实施要点

  1. 文档解析引擎:采用PhpOffice套件+自定义样式解析器
  2. 公式处理:集成MathJax在线服务(日调用量<10万次免费)
  3. 字体兼容:通过CSS @font-face嵌入GB2312字体文件
  4. 性能优化
    • 异步图片处理队列(Redis+Supervisor)
    • 文档解析缓存(Redis)
    • OSS分片上传(支持大文件)

商业合作模式

  1. 插件授权:基础版999元/年(含技术支持)
  2. 定制开发:2000元/人天(政府项目经验丰富)
  3. 代理分成:推荐客户成交即享20%分成
  4. 联合投标:提供完整的技术方案和演示系统

(推了推眼镜)现加入QQ群223813913,可获取:

  1. 政府项目投标书模板(含等保三级要求)
  2. 公式转换服务白名单配置指南
  3. 政企客户沟通话术手册

(突然压低声音)前100名入群者,赠送价值2999元的《政务系统验收标准手册》,包含300+项检查项清单,助您轻松通过验收!

将插件目录复制到项目中

引入插件文件

定义插件图标

初始化插件

在工具栏中添加插件按钮

效果

编辑器

导入Word文档,支持doc,docx

导入Excel文档,支持xls,xlsx

粘贴Word

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

Word转图片

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

导入PDF

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

导入PPT

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

上传网络图片

一键自动上传网络图片,自动下载远程服务器图片,自动上传远程服务器图片

下载示例

点击下载完整示例

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

SpringBoot大附件上传是否支持SM4加密传输与国密标准

项目技术方案&#xff1a;大文件传输系统&#xff08;企业级高可用方案&#xff09; 编制&#xff1a;北京某互联网企业 前端研发部 - 张工 日期&#xff1a;2023年11月28日 一、项目背景与核心痛点 公司承接政府/军工领域项目&#xff0c;需开发50GB级文件传输系统&#xff0…

作者头像 李华
网站建设 2026/6/8 20:02:24

一站式OCR解决方案:腾讯HunyuanOCR支持超100种语言识别

一站式OCR解决方案&#xff1a;腾讯HunyuanOCR支持超100种语言识别 在企业数字化转型的深水区&#xff0c;一个看似简单却长期棘手的问题始终存在&#xff1a;如何高效、准确地从成千上万张扫描发票、合同、证件中提取结构化信息&#xff1f;传统OCR方案动辄需要部署多个模型、…

作者头像 李华
网站建设 2026/6/9 0:47:10

防伪溯源系统集成:利用OCR识别二维码旁印刷文字防止篡改

防伪溯源系统集成&#xff1a;利用OCR识别二维码旁印刷文字防止篡改 在药品、高端酒类或进口化妆品的防伪验证场景中&#xff0c;你是否曾遇到过这样的尴尬&#xff1f;用户扫描二维码后显示“正品”&#xff0c;但包装上的生产批号字体明显不一致、排版错位——这正是伪造者复…

作者头像 李华
网站建设 2026/6/9 1:47:02

企业级文档处理平台搭建:集成腾讯HunyuanOCR提升自动化水平

企业级文档处理平台搭建&#xff1a;集成腾讯HunyuanOCR提升自动化水平 在财务部门的某个寻常下午&#xff0c;一名员工正对着十几张模糊的海外发票发愁——语言混杂、版式各异、关键字段位置不一。手动录入不仅耗时&#xff0c;还容易出错。而在隔壁的技术团队&#xff0c;工程…

作者头像 李华
网站建设 2026/6/9 1:43:24

Prometheus + Grafana监控HunyuanOCR GPU利用率与QPS指标

Prometheus Grafana监控HunyuanOCR GPU利用率与QPS指标 在AI模型服务日益普及的今天&#xff0c;一个看似“聪明”的系统如果背后缺乏可观测性支撑&#xff0c;就可能变成运维团队眼中的“黑盒炸弹”——你不知道它什么时候会慢下来&#xff0c;也不知道为什么突然卡顿。尤其是…

作者头像 李华
网站建设 2026/6/9 1:06:27

MyBatisPlus是否能用于OCR数据存储?结合HunyuanOCR构建结构化数据库

MyBatisPlus是否能用于OCR数据存储&#xff1f;结合HunyuanOCR构建结构化数据库 在企业数字化转型的浪潮中&#xff0c;一个看似简单却频繁出现的问题摆在开发者面前&#xff1a;如何把一张张纸质发票、身份证或合同上的文字&#xff0c;高效、准确地变成系统里可检索、可分析…

作者头像 李华