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

KindEditor处理政府公文word图片转存信创系统

(推了推黑框眼镜,手指在键盘上噼里啪啦敲击)各位老铁,咱北京程序员又来唠嗑了!最近接了个CMS官网的活儿,客户爸爸要求在KindEditor里整点花活——要能直接把Word/Excel/PPT/PDF里的内容连锅端到编辑器里,连公式和形状都不能丢!这哪是需求啊,这分明是要让咱把Office全家桶塞进浏览器里啊!


前端骚操作(Vue3 + KindEditor插件)

// src/plugins/OfficeImporter.jsexportdefault{init(editor){editor.addButton('officeImport',{title:'一键导入Office文档',icon:'icon-office',onclick:()=>{constinput=document.createElement('input');input.type='file';input.accept='.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf';input.onchange=async(e)=>{constfile=e.target.files[0];if(!file)return;// 调用后端API处理文件constformData=newFormData();formData.append('file',file);try{constres=awaitfetch('/api/office/import',{method:'POST',body:formData});consthtml=awaitres.text();editor.insertHtml(html);// 插入处理后的HTML}catch(err){alert('导入失败:'+err.message);}};input.click();}});}};// main.js 注册插件importOfficeImporterfrom'./plugins/OfficeImporter';KindEditor.plugin('officeImport',OfficeImporter);

后端神操作(PHP处理Office转HTML)

// api/office/import.phpgetContent();}functionhandleExcel($filePath){$spreadsheet=SpreadsheetIO::load($filePath);$writer=new\PhpOffice\PhpSpreadsheet\Writer\Html($spreadsheet);return$writer->generateHtmlHeader(false).$writer->generateSheetData();}functionhandlePPT($filePath){$phpPresentation=PresentationIO::load($filePath);$html='';foreach($phpPresentation->getAllSlides()as$slide){$html.='';foreach($slide->getShapeCollection()as$shape){if(method_exists($shape,'getRichTextElements')){$html.=''.htmlspecialchars($shape->getRichTextElements()[0]->getText()).'';}}$html.='';}return$html;}functionuploadImagesToOSS($html,$tempDir){// 正则匹配所有img标签的srcpreg_match_all('/]+src="([^"]+)"[^>]*>/i',$html,$matches);foreach($matches[1]as$i=>$src){if(strpos($src,'data:image')===0){// 处理base64图片$imageData=substr($src,strpos($src,',')+1);$imageName=uniqid().'.png';$ossPath='uploads/'.date('Ymd').'/'.$imageName;$ossClient->putObject('your-bucket',$ossPath,base64_decode($imageData));$html=str_replace($src,'https://your-bucket.oss-cn-beijing.aliyuncs.com/'.$ossPath,$html);}elseif(file_exists($tempDir.'/'.basename($src))){// 处理本地临时文件$imageName=uniqid().'.'.pathinfo($src,PATHINFO_EXTENSION);$ossPath='uploads/'.date('Ymd').'/'.$imageName;$ossClient->putObject('your-bucket',$ossPath,file_get_contents($tempDir.'/'.basename($src)));$html=str_replace($src,'https://your-bucket.oss-cn-beijing.aliyuncs.com/'.$ossPath,$html);}}return$html;}// 主逻辑$tempDir=sys_get_temp_dir();$filePath=$tempDir.'/'.uniqid().'.'.pathinfo($_FILES['file']['name'],PATHINFO_EXTENSION);move_uploaded_file($_FILES['file']['tmp_name'],$filePath);$html='';switch(pathinfo($_FILES['file']['name'],PATHINFO_EXTENSION)){case'doc':case'docx':$html=handleWord($filePath);break;case'xls':case'xlsx':$html=handleExcel($filePath);break;case'ppt':case'pptx':$html=handlePPT($filePath);break;case'pdf':// 这里可以用pdftotext或imagick处理PDF$html='PDF导入功能需额外配置';break;}// 处理图片上传到OSS$html=uploadImagesToOSS($html,$tempDir);// 清理临时文件unlink($filePath);echo$html;

数据库设计(就这?)

-- 根本不需要改表结构!-- 所有图片都存OSS,HTML直接塞进content字段ALTERTABLE`news`MODIFY`content`LONGTEXTCOMMENT'存储带Office样式的HTML';

群内赚钱秘籍(正经脸)

  1. QQ群:223813913新人进群领红包,推荐客户拿20%提成
  2. 代理机制:你负责拉客户,我负责写代码,分成自动到账
  3. 技术优势
    • 独家支持MathType/Latex公式转MathML
    • 完美解析emz/wmz矢量图
    • 公众号内容一键搬运
  4. 成本计算
    • 开发成本:0元(开源组件拼装)
    • 服务器成本:阿里云ECS + OSS(客户自付)
    • 你的时间成本:复制粘贴这段代码的时间

(突然正经)说真的,这需求我调研了两周,发现市面上要么贵得离谱,要么功能阉割。咱们这个方案:

  • 前端:Vue3 + KindEditor插件(1天搞定)
  • 后端:PHPOffice全家桶(3天搞定)
  • 部署:宝塔面板一键安装(半天搞定)

最关键的是——客户根本分不清你是自己开发的还是集成的!所以兄弟们,赶紧加群,这波红利能吃三年!

(突然弹出消息提示)“您有新的代理注册申请,预计提成:¥420.00” 哎,写代码哪有收提成香啊~

上传工具栏插件文件夹

上传插件文件夹

控件初始化

在head中引入组件文件
注意,不要重复引入jquery,如果您的页面已经引入了jquery这里就不要再引入jquery 1.4了。

WordPaster For KindEditor-4.x # 初始化组件 WordPaster.getInstance({ui:{render:"wdpst"}//目标容器,一般为div});

设置快捷键

将插件添加到工具栏,并挂载KindEditor的Ctrl+V快捷键事件

注意

1.如果接口字段名称不是file,请配置FileFieldName。

点击查看教程
2.如果接口返回JSON,请配置ImageMatch

点击查看教程

3.如果接口返回的图片地址没有域名,请配置ImageUrl

点击查看教程

整合效果

效果

编辑器界面

导入Word文档,支持doc,docx

导入Excel文档,支持xls,xlsx

粘贴Word

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

Word转图片

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

导入PDF

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

导入PPT

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

上传网络图片

示例下载

下载完整示例

http://www.cnnetsun.cn/news/140555.html

相关文章:

  • Vue-cli如何集成WebUploader完成百万文件分块上传?
  • HTML如何设计JQuery支持大文件上传的暂停与继续功能?
  • 35岁程序员失业,只能开滴滴?这五个大模型高价值转型方向,让你身价翻倍!
  • CSS margin(外边距)
  • 【计算机毕业设计案例】基于java+springboot+vue的流浪动物救助领养微信小程序基于springboot+微信小程序的宠物领养系统小程序(程序+文档+讲解+定制)
  • 宿主机net.ipv4.ip_forward设置 0 Docker网络直接“罢工”!
  • 【计算机毕业设计案例】基于SpringBoot的图书销售商城微信小程序基于springboot的华兴书城微信小程序(程序+文档+讲解+定制)
  • 【计算机毕业设计案例】基于springboot+Android的研学旅行服务平台APP小程序设计基于微信小程序的研学旅游服务小程序系统(程序+文档+讲解+定制)
  • python_django农业生产环境下的土壤与气候监控数据处理系统 可视化999i002k
  • python_django基于web平台的社区医疗服务平台_nk5a3uy7
  • 容错不是选修课,而是生死线:工业控制Agent必须具备的4项容错能力
  • python_django基于大数据技术旅游景点数据分析推荐系统现_wrqk1aes
  • 基于安卓的健身记录APP
  • 测试方法创新:从自动化到智能化的转型之路‌
  • 基于多智能体深度强化学习的车联网通信资源分配优化探索
  • 小程序毕设项目推荐-基于微信小程序的学生宿舍管理系统基于springboot+微信小程序的高校学生公寓道闸管理平台的设计与实现【附源码+文档,调试定制服务】
  • 小程序毕设项目推荐-基于springboot+vue的微信小程序的快递代取系统的设计与实现基于springboot+微信小程序的快递代取系统的设计与实小程序【附源码+文档,调试定制服务】
  • 小程序毕设项目推荐-基于微信小程序的宠物服务系统基于springboot+微信小程序的宠物服务系统小程序【附源码+文档,调试定制服务】
  • 给AI装上“海马体”:三层类人记忆架构如何让多Agent系统真正懂你
  • 影刀RPA黑科技:自动分析Zozone用户消费行为,精准营销一键搞定![特殊字符]
  • 【教育 AI 突破性进展】:3个真实案例揭示学情分析如何提升教学效率40%+
  • 通达信成交额优化公式指标
  • 数字电路高阶部分<1>数字电路里的“找不同”:隐含表到底藏着什么玄机?
  • Java开发必备:Maven集成IDEA详细教程
  • 喜报!凯云成为北京软件和信息服务业协会第十一届理事会会员单位,并荣获“双软认证”
  • 昨晚被消消乐广告气到,回家我直接用 AI 复刻了“究极进化版”俄罗斯方块!
  • 首创ACE具身研发范式,大晓机器人构建具身智能开放新生态
  • 41、Linux多核处理器性能优化与调试指南(上)
  • 44、深入探索GDB调试:数据检查、函数调用与模板调试技巧
  • WebDriver+Selenium实现浏览器自动化