2026/4/1 20:53:51
网站建设
项目流程
网站建设公司怎么选,网络营销课程总结范文,娄底网站建设最专业,秦皇岛优化营商环境CKEditor插件开发#xff1a;Word/Excel/PPT/PDF导入与微信公众号内容抓取
大家好#xff0c;我是西安的.NET程序员老王#xff0c;最近接了个CMS企业官网的外包项目#xff0c;客户非要让我在CKEditor里搞个文档导入神器。经过一番折腾#xff0c;总算找到了…CKEditor插件开发Word/Excel/PPT/PDF导入与微信公众号内容抓取大家好我是西安的.NET程序员老王最近接了个CMS企业官网的外包项目客户非要让我在CKEditor里搞个文档导入神器。经过一番折腾总算找到了个既满足需求又不超预算的方案。需求分析客户要的是在CKEditor工具栏加个按钮一键导入Word/Excel/PPT/PDF保留原格式字体、颜色、表格、公式等Latex公式转MathML多终端适配微信公众号内容抓取图片自动上传阿里云OSS预算680以内最后实际花费679.99完美技术选型经过三天三夜的调研其实就是边喝冰峰边刷GitHub最终选定前端基于CKEditor 5的自定义插件后端.NET WebForm处理文件上传和转换转换引擎使用开源的Pandoc 本地服务封装前端实现 (Vue3 CKEditor 5)1. 创建自定义插件// src/plugins/DocImportPlugin.jsimportPluginfromckeditor/ckeditor5-core/src/plugin;importButtonViewfromckeditor/ckeditor5-ui/src/button/buttonview;import{icons}fromckeditor5/src/core;exportdefaultclassDocImportPluginextendsPlugin{init(){consteditorthis.editor;editor.ui.componentFactory.add(docImport,locale{constviewnewButtonView(locale);view.set({label:导入文档,icon:icons.paste,tooltip:true});view.on(execute,(){this._showFileDialog();});returnview;});}}2. 注册插件 (main.js)import{ClassicEditor}fromckeditor/ckeditor5-editor-classic;importDocImportPluginfrom./plugins/DocImportPlugin;ClassicEditor.create(document.querySelector(#editor),{plugins:[/* 其他插件 */,DocImportPlugin],toolbar:{items:[/* 其他按钮 */,docImport]}}).then(editor{window.editoreditor;}).catch(error{console.error(error);});后端实现 (ASP.NET WebForm)1. 文件上传处理 (DocumentImport.ashx)%WebHandlerLanguageC#ClassDocumentImport%usingSystem;usingSystem.IO;usingSystem.Web;usingSystem.Diagnostics;usingAliyun.OSS;publicclassDocumentImport:IHttpHandler{publicvoidProcessRequest(HttpContextcontext){context.Response.ContentTypeapplication/json;try{if(context.Request.Files.Count0){thrownewException(未接收到文件);}HttpPostedFilefilecontext.Request.Files[0];if(file.ContentLength0){thrownewException(文件内容为空);}}}publicboolIsReusable{get{returnfalse;}}}2. 微信公众号内容抓取 (WeChatImport.ashx)%WebHandlerLanguageC#ClassWeChatImport%publicclassWeChatImport:IHttpHandler{publicvoidProcessRequest(HttpContextcontext){context.Response.ContentTypeapplication/json;stringurlcontext.Request[url];if(string.IsNullOrEmpty(url)){thrownewException(请提供微信公众号文章URL);}// 3. 处理图片 (类似DocumentImport中的处理)cleanedHtmlProcessImagesInHtml(cleanedHtml);context.Response.Write(Newtonsoft.Json.JsonConvert.SerializeObject(new{successtrue,htmlcleanedHtml}));}// ProcessImagesInHtml方法与DocumentImport中相同publicboolIsReusable{get{returnfalse;}}}部署说明前端部署将插件文件放入Vue项目的src/plugins目录在main.js中注册插件重新构建项目 (npm run build)后端部署将ashx文件放入网站根目录安装Pandoc并配置路径或使用其他转换工具配置阿里云OSS的访问密钥CKEditor配置// 在CKEditor配置中添加toolbar:{items:[heading,|,bold,italic,link,bulletedList,numberedList,|,blockQuote,insertTable,mediaEmbed,|,docImport,wechatImport]}成本控制Pandoc: 免费开源阿里云OSS: 按使用量付费首年有免费额度开发时间: 3天折合人天成本约1500但客户说680以内所以咱们算679.99最终效果工具栏新增两个按钮“导入文档”支持Word/Excel/PPT/PDF“微信导入”直接抓取公众号文章导入后保留文字格式字体、颜色、大小表格图片自动上传OSS公式Latex转MathML形状和形状组多终端适配MathML确保在各种设备上高清显示加入我们对了差点忘了广告时间欢迎加入我们的QQ群223813913新人送1-99元红包最新产品体验BUG实时反馈代理商提成20%-50%订单越大提成越高想象一下你只是喝着冰峰在群里吹吹水每个月可能就多出几万收入这不比上班香赶紧扫码加入吧// 群内提成计算器示例代码decimalCalculateCommission(decimalorderAmount,stringmemberLevel){decimalratememberLevelswitch{黄金0.5m,白银0.3m,_0.2m};returnorderAmount*rate;}// 示例黄金会员处理2万订单varcommissionCalculateCommission(20000,黄金);// 返回10000美滋滋好了不说了我去群里看看有没有新订单了回见复制插件说明此教程以CKEditor4.x为例使用其他编辑器的查看对应教程。将下列文件夹复制到项目中/WordPaster/ckeditor/plugins/imagepaster/ckeditor/plugins/netpaster/ckeditor/plugins/pptpaster/ckeditor/plugins/pdfimport上传插件上传插件文件夹将imagepaster,netpaster文件夹上传到现有项目ckeditor/plugins目录中在工具栏中增加插件按钮引用js初始化控件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:,Cookie:PHPSESSID});//加载控件配置上传接口注意1.如果接口字段名称不是file请配置FileFieldName。ueditor接口中使用的upfile字段点击查看详细教程配置ImageMatch用于匹配JSON数据点击查看详细教程配置ImageUrl用于为图片增加域名前缀点击查看详细教程配置Session如果接口有权限验证登陆验证SESSION验证请配置COOKIE。或取消权限验证。参考点击查看详细教程说明1.请先测试您的接口点击查看详细教程功能演示编辑器界面导入Word文档,支持doc,docx导入Excel文档,支持xls,xlsx粘贴Word一键粘贴Word内容自动上传Word中的图片保留文字样式。Word转图片一键导入Word文件并将Word文件转换成图片上传到服务器中。导入PDF一键导入PDF文件并将PDF转换成图片上传到服务器中。导入PPT一键导入PPT文件并将PPT转换成图片上传到服务器中。上传网络图片一键自动上传网络图片自动下载远程服务器图片自动上传远程服务器图片下载示例点击下载完整示例