国外做设计的网站在家做网站怎么赚钱

张小明 2026/1/3 16:18:54
国外做设计的网站,在家做网站怎么赚钱,什么软件可以做动画,怎么找网红推广自己的店企业网站后台管理系统Word/微信公众号内容粘贴功能集成方案 一、需求分析与背景 作为贵州某集团企业的项目负责人#xff0c;我们近期在企业网站后台管理系统的升级项目中遇到了一个新的需求#xff1a;需要在现有的文章发布模块中增加Word粘贴、Word文档导入以及微信公众号…企业网站后台管理系统Word/微信公众号内容粘贴功能集成方案一、需求分析与背景作为贵州某集团企业的项目负责人我们近期在企业网站后台管理系统的升级项目中遇到了一个新的需求需要在现有的文章发布模块中增加Word粘贴、Word文档导入以及微信公众号内容粘贴功能。核心需求要点功能要求Web编辑器TinyMCE 4工具栏增加插件Word内容粘贴保留样式图片自动上传Word/Excel/PPT/PDF文档导入微信公众号内容粘贴自动下载图片并上传技术要求前端Vue2 CLI TinyMCE 4后端SpringBoot数据库MySQL服务器华为云ECS OBS信创兼容多种国产OSCPU架构浏览器兼容包括IE8在内的全浏览器支持商务要求预算58万以内一次性买断授权厂商需提供5个以上政府/央企项目案例证明避免后续涨价风险二、市场调研与产品评估1. 调研过程我通过以下渠道进行了市场调研专业B2B平台如CSDN、InfoQ、开源中国行业技术论坛同行推荐现有合作厂商咨询2. 候选产品评估2.1 开源方案评估CKEditor Paste from Word插件优点开源免费社区支持缺点样式保留不完整图片处理需自行开发信创环境兼容性不确定TinyMCE PowerPaste插件优点官方插件与现有编辑器兼容缺点商业授权按年付费部分高级功能需额外付费国产化支持不明确2.2 商业方案评估方案A某国产编辑器厂商报价45万买断授权优点完全国产信创兼容提供源代码已有政府项目案例缺点与TinyMCE集成需定制开发IE8支持需额外测试方案B国际知名编辑器厂商报价60万3年授权优点功能强大成熟稳定缺点超预算续费模式不符合要求信创支持有限方案C专业文档处理中间件报价52万永久授权优点专注文档处理提供SDK和API支持多格式导入导出缺点集成工作量较大学习曲线陡峭3. 方案对比表评估维度开源方案方案A方案B方案C功能完整性★★☆☆☆★★★★☆★★★★★★★★★☆信创兼容性★★☆☆☆★★★★★★★☆☆☆★★★★☆集成便利性★★☆☆☆★★★☆☆★★★★☆★★★☆☆预算符合度★★★★★★★★★★★★☆☆☆★★★★★后续维护★★☆☆☆★★★★☆★★★☆☆★★★★☆厂商资质N/A★★★★★★★★☆☆★★★★☆4. 推荐方案综合考虑后我推荐采用方案A——某国产编辑器厂商的方案原因如下完全符合信创要求买断授权在预算内已有政府项目案例提供源代码自主可控本地化服务支持好三、技术方案设计1. 系统架构[客户端] ├─ Vue2 CLI └─ TinyMCE 4 (集成国产插件) ├─ Word粘贴 ├─ 文档导入 └─ 公众号粘贴 [服务端] ├─ SpringBoot │ ├─ 文件上传服务 │ ├─ 文档解析服务 │ └─ 图片处理服务 └─ 华为云OBS [信创环境] ├─ 多种国产OS └─ 多种国产CPU2. 功能流程图Word粘贴流程是否用户复制Word内容点击粘贴按钮插件解析内容是否包含图片?提取图片并上传OBS直接插入HTML替换图片URL保留样式插入编辑器文档导入流程用户选择文档前端上传文件后端解析文档提取文本和图片上传图片到OBS生成HTML返回前端插入编辑器3. 关键技术点Word样式保留使用专业的文档解析引擎转换Office Open XML格式样式映射到HTML/CSS图片处理二进制流上传异步处理机制上传进度反馈信创兼容多环境测试矩阵国产CPU指令集优化浏览器降级方案四、开发实施1. 前端集成示例// main.js - TinyMCE插件初始化importtinymcefromtinymce/tinymceimporttinymce/themes/modern/themeimporttinymce/plugins/pasteimporttinymce/plugins/link// 引入国产插件importChinesePluginfrom/lib/tinymce/plugins/chinese-doc-importtinymce.init({selector:#editor,plugins:[paste link chinese-doc-import],toolbar:undo redo | styleselect | bold italic | link | chineseDocImport,// 插件配置chinese_doc_import_config:{upload_url:/api/upload/image,doc_import_url:/api/import/doc,wechat_import_url:/api/import/wechat,oss_config:{bucket:your-bucket,region:your-region}}})2. 后端接口示例// FileUploadController.javaRestControllerRequestMapping(/api/upload)publicclassFileUploadController{AutowiredprivateHuaweiOBSServiceobsService;PostMapping(/image)publicResponseEntityuploadImage(RequestParam(file)MultipartFilefile,RequestParam(valuetype,defaultValuenormal)Stringtype){try{// 验证文件类型StringcontentTypefile.getContentType();if(!contentType.startsWith(image/)){thrownewIllegalArgumentException(只支持图片文件上传);}// 上传到华为云OBSStringfileKeyimages/UUID.randomUUID()getFileExtension(file.getOriginalFilename());StringurlobsService.uploadFile(fileKey,file.getInputStream());// 返回结果MapresultnewHashMap();result.put(url,url);result.put(key,fileKey);returnResponseEntity.ok(result);}catch(Exceptione){returnResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(Collections.singletonMap(error,e.getMessage()));}}privateStringgetFileExtension(Stringfilename){returnfilename.substring(filename.lastIndexOf(.));}}3. 文档解析服务// DocParseService.javaServicepublicclassDocParseService{AutowiredprivateHuaweiOBSServiceobsService;publicStringparseWordDocument(InputStreaminputStream)throwsException{// 使用国产文档解析库ChineseDocParserparsernewChineseDocParser();DocumentContentcontentparser.parse(inputStream);// 处理图片for(DocumentImageimage:content.getImages()){StringfileKeydocs/UUID.randomUUID().image.getFormat();StringimageUrlobsService.uploadFile(fileKey,image.getData());content.replaceImagePlaceholder(image.getId(),imageUrl);}// 生成HTMLreturncontent.toHtml();}// Excel/PPT/PDF的类似解析方法...}4. 华为云OBS服务封装// HuaweiOBSService.javaServicepublicclassHuaweiOBSService{privatefinalObsClientobsClient;publicHuaweiOBSService(Value(${huawei.obs.endpoint})Stringendpoint,Value(${huawei.obs.accessKey})StringaccessKey,Value(${huawei.obs.secretKey})StringsecretKey){this.obsClientnewObsClient(accessKey,secretKey,endpoint);}publicStringuploadFile(StringfileKey,InputStreaminputStream)throwsException{StringbucketNamegetBucketName();PutObjectRequestrequestnewPutObjectRequest();request.setBucketName(bucketName);request.setObjectKey(fileKey);request.setInput(inputStream);obsClient.putObject(request);returnString.format(https://%s.%s/%s,bucketName,obsClient.getClientConfiguration().getEndPoint(),fileKey);}privateStringgetBucketName(){// 从配置获取或逻辑判断returnyour-bucket-name;}}五、信创环境适配方案1. 兼容性测试矩阵操作系统x86(Intel)x86(兆芯)ARM(鲲鹏)龙芯(LoongArch)Windows✔️✔️N/AN/A银河麒麟✔️✔️✔️✔️统信UOS✔️✔️✔️✔️中标麒麟✔️✔️✔️✔️2. IE8兼容方案// ie8-compat.jsif(typeofdocument.createElement(canvas).getContextundefined){// IE8及以下浏览器polyfilldocument.write(\/script);document.write(script src/lib/es5-sham.min.js\/script);document.write(script src/lib/respond.min.js\/script);document.write(script src/lib/excanvas.compiled.js\/script);// 加载TinyMCE的IE8专用版本window.tinyMCEPreInit{base:/lib/tinymce-ie8,suffix:.min};}六、项目实施计划1. 时间规划阶段时间交付物厂商产品验证2周验证报告系统集成开发4周集成版本信创环境测试3周测试报告用户验收测试2周UAT报告上线部署1周部署文档2. 风险与应对风险点应对措施国产插件与TinyMCE兼容问题厂商提供定制支持IE8下性能问题优化加载策略使用轻量级组件信创环境字体渲染差异内置常用政府公文字体大文档导入内存溢出分块处理流式解析七、商务与合同建议授权条款永久授权不限项目数量包含3年免费技术支持源代码托管可选付款方式30%预付款40%验收付款30%尾款3个月质保期后验收标准功能验收清单性能指标如支持100MB文档导入信创环境测试报告八、总结与建议经过全面调研和技术评估我建议采用国产编辑器厂商的方案A理由如下完全合规满足信创所有硬指标要求避免项目风险成本可控一次性买断授权在预算范围内长期成本最优自主可控提供源代码避免被厂商锁定服务保障本地化团队支持响应速度快实施过程中需要重点关注与现有TinyMCE编辑器的无缝集成IE8下的用户体验优化多信创环境的充分测试建议立即启动与厂商的技术对接和商务谈判争取在本季度内完成项目实施为后续政府项目投标提供有力的技术支撑。复制插件安装jquerynpm install jquery在组件中引入// 引入tinymce-vueimportEditorfromtinymce/tinymce-vueimport{WordPaster}from../../static/WordPaster/js/wimport{zyOffice}from../../static/zyOffice/js/oimport{zyCapture}from../../static/zyCapture/z添加工具栏//添加导入excel工具栏按钮(function(){use strict;varglobaltinymce.util.Tools.resolve(tinymce.PluginManager);functionselectLocalImages(editor){WordPaster.getInstance().SetEditor(editor).importExcel()}varregister$1function(editor){editor.ui.registry.addButton(excelimport,{text:img src/static/WordPaster/plugin/excel.png/,tooltip:导入Excel文档,onAction:function(){selectLocalImages(editor)}});editor.ui.registry.addMenuItem(excelimport,{text:img src/static/WordPaster/plugin/excel.png/,tooltip:导入Excel文档,onAction:function(){selectLocalImages(editor)}});};varButtons{register:register$1};functionPlugin(){global.add(excelimport,function(editor){Buttons.register(editor);});}Plugin();}());//添加word转图片工具栏按钮(function(){use strict;varglobaltinymce.util.Tools.resolve(tinymce.PluginManager);functionselectLocalImages(editor){WordPaster.getInstance().SetEditor(editor);WordPaster.getInstance().importWordToImg()}varregister$1function(editor){editor.ui.registry.addButton(importwordtoimg,{text:img src/static/WordPaster/plugin/word1.png/,tooltip:Word转图片,onAction:function(){selectLocalImages(editor)}});editor.ui.registry.addMenuItem(importwordtoimg,{text:img src/static/WordPaster/plugin/word1.png/,tooltip:Word转图片,onAction:function(){selectLocalImages(editor)}});};varButtons{register:register$1};functionPlugin(){global.add(importwordtoimg,function(editor){Buttons.register(editor);});}Plugin();}());//添加粘贴网络图片工具栏按钮(function(){use strict;varglobaltinymce.util.Tools.resolve(tinymce.PluginManager);functionselectLocalImages(editor){WordPaster.getInstance().SetEditor(editor);WordPaster.getInstance().UploadNetImg()}varregister$1function(editor){editor.ui.registry.addButton(netpaster,{text:img src/static/WordPaster/plugin/net.png/,tooltip:网络图片一键上传,onAction:function(){selectLocalImages(editor)}});editor.ui.registry.addMenuItem(netpaster,{text:img src/static/WordPaster/plugin/net.png/,tooltip:网络图片一键上传,onAction:function(){selectLocalImages(editor)}});};varButtons{register:register$1};functionPlugin(){global.add(netpaster,function(editor){Buttons.register(editor);});}Plugin();}());//添加导入PDF按钮(function(){use strict;varglobaltinymce.util.Tools.resolve(tinymce.PluginManager);functionselectLocalImages(editor){WordPaster.getInstance().SetEditor(editor);WordPaster.getInstance().ImportPDF()}varregister$1function(editor){editor.ui.registry.addButton(pdfimport,{text:img src/static/WordPaster/plugin/pdf.png/,tooltip:导入pdf文档,onAction:function(){selectLocalImages(editor)}});editor.ui.registry.addMenuItem(pdfimport,{text:img src/static/WordPaster/plugin/pdf.png/,tooltip:导入pdf文档,onAction:function(){selectLocalImages(editor)}});};varButtons{register:register$1};functionPlugin(){global.add(pdfimport,function(editor){Buttons.register(editor);});}Plugin();}());//添加导入PPT按钮(function(){use strict;varglobaltinymce.util.Tools.resolve(tinymce.PluginManager);functionselectLocalImages(editor){WordPaster.getInstance().SetEditor(editor);WordPaster.getInstance().importPPT()}varregister$1function(editor){editor.ui.registry.addButton(pptimport,{text:img src/static/WordPaster/plugin/ppt.png/,tooltip:导入PowerPoint文档,onAction:function(){selectLocalImages(editor)}});editor.ui.registry.addMenuItem(pptimport,{text:img src/static/WordPaster/plugin/ppt.png/,tooltip:导入PowerPoint文档,onAction:function(){selectLocalImages(editor)}});};varButtons{register:register$1};functionPlugin(){global.add(pptimport,function(editor){Buttons.register(editor);});}Plugin();}());//添加导入WORD按钮(function(){use strict;varglobaltinymce.util.Tools.resolve(tinymce.PluginManager);functionselectLocalImages(editor){WordPaster.getInstance().SetEditor(editor).importWord()}varregister$1function(editor){editor.ui.registry.addButton(wordimport,{text:img src/static/WordPaster/plugin/word2.png/,tooltip:导入Word文档,onAction:function(){selectLocalImages(editor)}});editor.ui.registry.addMenuItem(wordimport,{text:img src/static/WordPaster/plugin/word2.png/,tooltip:导入Word文档,onAction:function(){selectLocalImages(editor)}});};varButtons{register:register$1};functionPlugin(){global.add(wordimport,function(editor){Buttons.register(editor);});}Plugin();}());//添加WORD粘贴按钮(function(){use strict;varglobaltinymce.util.Tools.resolve(tinymce.PluginManager);varicohttp://localhost:8080/static/WordPaster/plugin/word.pngfunctionselectLocalImages(editor){WordPaster.getInstance().SetEditor(editor).PasteManual()}varregister$1function(editor){editor.ui.registry.addButton(wordpaster,{text:img src/static/WordPaster/plugin/word.png/,tooltip:Word一键粘贴,onAction:function(){selectLocalImages(editor)}});editor.ui.registry.addMenuItem(wordpaster,{text:img src/static/WordPaster/plugin/word.png/,tooltip:Word一键粘贴,onAction:function(){selectLocalImages(editor)}});};varButtons{register:register$1};functionPlugin(){global.add(wordpaster,function(editor){Buttons.register(editor);});}Plugin();}());在线代码添加插件// 插件plugins:{type:[String,Array],// default: advlist anchor autolink autosave code codesample colorpicker colorpicker contextmenu directionality emoticons fullscreen hr image imagetools importcss insertdatetime link lists media nonbreaking noneditable pagebreak paste preview print save searchreplace spellchecker tabfocus table template textcolor textpattern visualblocks visualcharsdefault:autoresize code autolink autosave image imagetools paste preview table powertables},点击查看在线代码初始化组件// 初始化WordPaster.getInstance({// 上传接口http://www.ncmem.com/doc/view.aspx?idd88b60a2b0204af1ba62fa66288203edPostUrl:http://localhost:8891/upload.aspx,// 为图片地址增加域名http://www.ncmem.com/doc/view.aspx?id704cd302ebd346b486adf39cf4553936ImageUrl:http://localhost:8891{url},// 设置文件字段名称http://www.ncmem.com/doc/view.aspx?idc3ad06c2ae31454cb418ceb2b8da7c45FileFieldName:file,// 提取图片地址http://www.ncmem.com/doc/view.aspx?id07e3f323d22d4571ad213441ab8530d1ImageMatch:})在页面中引入组件templatedivclasshelloh1{{msg}}/h1TinymceEditor/TinymceEditor/div/template功能演示编辑器在编辑器中增加功能按钮导入Word文档,支持doc,docx导入Excel文档,支持xls,xlsx粘贴Word一键粘贴Word内容自动上传Word中的图片保留文字样式。Word转图片一键导入Word文件并将Word文件转换成图片上传到服务器中。导入PDF一键导入PDF文件并将PDF转换成图片上传到服务器中。导入PPT一键导入PPT文件并将PPT转换成图片上传到服务器中。上传网络图片一键自动上传网络图片。下载示例点击下载完整示例
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站绑定微信账号深圳设计网站公司

Kotaemon框架支持SSCOM串口通信扩展?工业场景新玩法设想 在智能制造加速推进的今天,越来越多工厂面临一个尴尬局面:一方面部署了先进的AI对话系统用于运维辅助,另一方面大量关键设备仍通过RS-485串口进行控制。当操作员对着语音助…

张小明 2026/1/1 6:20:05 网站建设

动漫网站怎么做的昆明设计网站建设

还在为中文显示效果发愁吗?🤔 文泉驿微米黑字体就是你的完美解决方案!这款轻量级开源中文字体仅需5MB存储空间,却能提供出色的中文显示效果,特别适合内存有限的设备使用。 【免费下载链接】fonts-wqy-microhei Debian …

张小明 2025/12/31 22:32:18 网站建设

建设网站搞网络营销的总结wordpress 360收录

在工业生产飞速发展的当下,污水排放问题日益严峻,其中重金属超标尤为令人担忧。重金属一旦进入水体,不仅会破坏生态平衡,还会通过食物链积累,后会威胁人类健康。那么,当污水里重金属超标时,我们…

张小明 2025/12/31 22:32:17 网站建设

怎样在手机做自己的网站6泉州网红餐厅

第一章:Open-AutoGLM部署到手机的战略背景随着边缘计算与终端智能的快速发展,将大语言模型(LLM)本地化部署至移动设备已成为AI技术演进的关键方向。Open-AutoGLM作为一款开源的自动代码生成语言模型,具备强大的语义理解…

张小明 2025/12/31 22:32:22 网站建设

做搬家服务网站问卷调查结果建筑人才网官网入口

TeslaMate实战指南:从数据焦虑到智能掌控的完整解决方案 【免费下载链接】teslamate 项目地址: https://gitcode.com/gh_mirrors/tes/teslamate 你是否曾为这些用车困惑而烦恼?🔋 看着续航里程不断下降却无法准确评估电池健康&#x…

张小明 2025/12/31 18:33:39 网站建设

布吉做棋牌网站建设找哪家效益快提升学历官网报名

在我们实际开发项目的时候,有时候为了使用方便,会针对一些常用到的内容进行一定的封装处理,以降低使用的难度和减少相关代码,本篇随笔介绍在PySide6/PyQt6的项目中封装一些基础类库,包括文件对话框、字体对话框、颜色对…

张小明 2025/12/31 22:32:20 网站建设