网站设计的总结注册公司费用要多少

张小明 2026/3/2 19:43:43
网站设计的总结,注册公司费用要多少,易企秀网站开发,佛山市三山新城建设局网站【集团级富文本编辑器国产化集成项目纪实——从需求拆解到全栈信创落地】 2023年X月X日 周X 上海浦东新区 一、项目背景与核心需求 作为某集团技术负责人#xff0c;近期承接政府数字化项目时#xff0c;客户提出关键需求#xff1a; 功能需求#xff1a; Word粘贴/导入近期承接政府数字化项目时客户提出关键需求功能需求Word粘贴/导入支持从Word复制内容含表格/形状/字体样式粘贴至编辑器图片自动上传至华为云OBS微信公众号抓取解析公众号文章HTML自动下载图片并替换为OBS链接多格式导入Word/Excel/PPT/PDF全格式支持保留原始排版和图片技术约束前端Vue2-cli wangEditor4需无缝集成不破坏现有JSP架构后端JSP Servlet需兼容IE8及国产浏览器部署华为云ECSCentOS 7 OBS对象存储未来扩展至阿里云/Azure合规要求信创兼容支持中标麒麟/统信UOS等国产OS龙芯/飞腾等国产CPU授权模式买断源代码预算≤58万避免年度续费和商务流程二、技术选型与风险评估1. 富文本编辑器插件方案对比方案优势风险国产化适配成本买断wangEditor4扩展原生支持Vue2API开放需自行开发Office解析模块完全兼容¥18万UEditor信创版政府项目经验丰富基于FlashIE8需polyfill部分兼容¥45万自定义开发完全可控开发周期长预估8人月需适配¥80万WordPaster源码版完全开源(下载源码)功能完整集成简单部署简单使用简单需要终端安装插件完全兼容¥9999决策选择WordPaster源码版理由集团年项目量1000买断授权可摊薄成本至单项目¥0.058万华为云OBS SDK提供Java/JS双版本与JSP后端无缝集成2. 信创环境验证清单浏览器CPU架构# 龙芯3A5000测试命令cat/proc/cpuinfo|grepmodel namejava -version# 验证龙芯JDK运行环境三、核心功能开发实现1. 前端集成Vue2 wangEditor4步骤1扩展编辑器工具栏// src/components/RichTextEditor.vueimportEfromwangeditorexportdefault{mounted(){consteditornewE(#editor-container)// 添加自定义按钮editor.config.menus[...editor.config.menus,word-paste,wechat-paste]// 拦截粘贴事件editor.config.pasteTextHandle(content){returnthis.processClipboardData(content)}editor.create()},methods:{asyncprocessClipboardData(html){// 处理Word粘贴内容constdocnewDOMParser().parseFromString(html,text/html)constimagesdoc.querySelectorAll(img[src^data:image])for(letimgofimages){constblobawaitthis.dataURLtoBlob(img.src)constformDatanewFormData()formData.append(file,blob,paste-image.png)// 调用JSP后端上传接口constresawaitfetch(/file/upload,{method:POST,body:formData})consturlawaitres.text()img.srcurl}returndoc.body.innerHTML},dataURLtoBlob(dataUrl){// BASE64转Blob实现略}}}步骤2微信公众号内容抓取跨域代理// Web.xml配置代理Servlet解决跨域问题WechatProxycom.group.proxy.WechatProxyServletWechatProxy/proxy/wechat/*2. 后端实现JSP OBS SDK文件上传接口// src/com/group/servlet/FileUploadServlet.javaWebServlet(/file/upload)MultipartConfigpublicclassFileUploadServletextendsHttpServlet{protectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{PartfilePartreq.getPart(file);StringfileNameUUID.randomUUID().toString().png;// 华为云OBS配置StringendPointobs.cn-east-3.myhuaweicloud.com;Stringakyour-access-key;Stringskyour-secret-key;ObsClientobsClientnewObsClient(ak,sk,endPoint);obsClient.putObject(group-bucket,fileName,filePart.getInputStream());// 返回OBS访问URLStringurlString.format(https://%s.obs.%s.myhuaweicloud.com/%s,group-bucket,endPoint.split(\\.)[1],fileName);resp.setContentType(text/plain);resp.getWriter().print(url);}}Office文档解析Apache POI// 处理PPT中的图片publicvoidextractImagesFromPpt(InputStreampptStream,StringoutputDir)throwsIOException{XMLSlideShowpptnewXMLSlideShow(pptStream);for(XSLFSlideslide:ppt.getSlides()){for(XSLFShapeshape:slide.getShapes()){if(shapeinstanceofXSLFPictureShape){XSLFPictureDatapicData((XSLFPictureShape)shape).getPictureData();byte[]datapicData.getData();Files.write(Paths.get(outputDir,picData.getFileName()),data);}}}}四、信创环境专项优化1. 中文字体渲染优化Linux服务器配置# 统信UOS安装微软雅黑字体mkdir-p /usr/share/fonts/windowswgethttps://example.com/msyh.ttf -O /usr/share/fonts/windows/msyh.ttf fc-cache -fv2. 多云存储抽象层publicinterfaceCloudStorage{Stringupload(byte[]data,StringfileName);voiddelete(Stringkey);}publicclassObsStorageimplementsCloudStorage{// 华为云OBS实现}publicclassOssStorageimplementsCloudStorage{// 阿里云OSS实现预留}五、项目交付与验收标准功能验收在龙芯3A5000 奇安信浏览器中成功导入200页PPT微信公众号图片抓取准确率100%性能指标50MB Word文件导入耗时≤5秒并发上传支持50QPS交付物完整源代码含前端Vue组件JSP后端服务《信创环境部署指南》含龙芯/飞腾适配说明压力测试报告LoadRunner脚本及结果最终成本通过开源组件复用华为云OBS免费额度项目总成本控制在42万元内较预算节约27.6%。【项目总结】选型关键优先选择支持国产化的成熟开源框架避免重复造轮子兼容性策略采用渐进增强方案核心功能支持IE8新特性面向现代浏览器授权管理建立集团内部开源代码库实现授权一次复用无限附项目私有GitLab仓库地址已同步至集团知识管理系统授权码GOV-GROUP-2023-XXXXX复制插件文件安装jquerynpm install jquery导入组件importEfromwangeditorconst{$,BtnMenu,DropListMenu,PanelMenu,DropList,Panel,Tooltip}Eimport{WordPaster}from../../static/WordPaster/js/wimport{zyCapture}from../../static/zyCapture/zimport{zyOffice}from../../static/zyOffice/js/o初始化组件//zyCapture ButtonclasszyCaptureBtnextendsBtnMenu{constructor(editor){const$elemE.$(div classw-e-menu>)super($elem,editor)}clickHandler(){window.zyCapture.setEditor(this.editor).Capture();}tryChangeActive(){this.active()}}//zyOffice ButtonclassimportWordBtnextendsBtnMenu{constructor(editor){const$elemE.$(div classw-e-menu>)super($elem,editor)}clickHandler(){window.zyOffice.SetEditor(this.editor).api.openDoc();}tryChangeActive(){this.active()}}//zyOffice ButtonclassexportWordBtnextendsBtnMenu{constructor(editor){const$elemE.$(div classw-e-menu>)super($elem,editor)}clickHandler(){window.zyOffice.SetEditor(this.editor).api.exportWord();}tryChangeActive(){this.active()}}//zyOffice ButtonclassimportPdfBtnextendsBtnMenu{constructor(editor){const$elemE.$(div classw-e-menu>)super($elem,editor)}clickHandler(){window.zyOffice.SetEditor(this.editor).api.openPdf();}tryChangeActive(){this.active()}}//WordPaster ButtonclassWordPasterBtnextendsBtnMenu{constructor(editor){const$elemE.$(div classw-e-menu>)super($elem,editor)}clickHandler(){WordPaster.getInstance().SetEditor(this.editor).Paste();}tryChangeActive(){this.active()}}//wordImport ButtonclassWordImportBtnextendsBtnMenu{constructor(editor){const$elemE.$(div classw-e-menu>)super($elem,editor)}clickHandler(){WordPaster.getInstance().SetEditor(this.editor).importWord();}tryChangeActive(){this.active()}}//excelImport ButtonclassExcelImportBtnextendsBtnMenu{constructor(editor){const$elemE.$(div classw-e-menu>)super($elem,editor)}clickHandler(){WordPaster.getInstance().SetEditor(this.editor).importExcel();}tryChangeActive(){this.active()}}//ppt paster ButtonclassPPTImportBtnextendsBtnMenu{constructor(editor){const$elemE.$(div classw-e-menu>)super($elem,editor)}clickHandler(){WordPaster.getInstance().SetEditor(this.editor).importPPT();}tryChangeActive(){this.active()}}//pdf paster ButtonclassPDFImportBtnextendsBtnMenu{constructor(editor){const$elemE.$(div classw-e-menu>)super($elem,editor)}clickHandler(){WordPaster.getInstance().SetEditor(this.editor);WordPaster.getInstance().ImportPDF();}tryChangeActive(){this.active()}}//importWordToImg ButtonclassImportWordToImgBtnextendsBtnMenu{constructor(editor){const$elemE.$(div classw-e-menu>)super($elem,editor)}clickHandler(){WordPaster.getInstance().SetEditor(this.editor).importWordToImg();}tryChangeActive(){this.active()}}//network paster ButtonclassNetImportBtnextendsBtnMenu{constructor(editor){const$elemE.$(div classw-e-menu>)super($elem,editor)}clickHandler(){WordPaster.getInstance().SetEditor(this.editor);WordPaster.getInstance().UploadNetImg();}tryChangeActive(){this.active()}}exportdefault{name:HelloWorld,data(){return{msg:Welcome to Your Vue.js App}},mounted(){vareditornewE(#editor);WordPaster.getInstance({//上传接口http://www.ncmem.com/doc/view.aspx?idd88b60a2b0204af1ba62fa66288203edPostUrl:http://localhost:8891/upload.aspx,License2:,//为图片地址增加域名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:});zyCapture.getInstance({config:{PostUrl:http://localhost:8891/upload.aspx,License2:,FileFieldName:file,Fields:{uname:test},ImageUrl:http://localhost:8891{url}}})// zyoffice// 使用前请在服务端部署zyoffice// http://www.ncmem.com/doc/view.aspx?id82170058de824b5c86e2e666e5be319czyOffice.getInstance({word:http://localhost:13710/zyoffice/word/convert,wordExport:http://localhost:13710/zyoffice/word/export,pdf:http://localhost:13710/zyoffice/pdf/upload})// 注册菜单E.registerMenu(zyCaptureBtn,zyCaptureBtn)E.registerMenu(WordPasterBtn,WordPasterBtn)E.registerMenu(ImportWordToImgBtn,ImportWordToImgBtn)E.registerMenu(NetImportBtn,NetImportBtn)E.registerMenu(WordImportBtn,WordImportBtn)E.registerMenu(ExcelImportBtn,ExcelImportBtn)E.registerMenu(PPTImportBtn,PPTImportBtn)E.registerMenu(PDFImportBtn,PDFImportBtn)E.registerMenu(importWordBtn,importWordBtn)E.registerMenu(exportWordBtn,exportWordBtn)E.registerMenu(importPdfBtn,importPdfBtn)//挂载粘贴事件editor.txt.eventHooks.pasteEvents.length0;editor.txt.eventHooks.pasteEvents.push(function(){WordPaster.getInstance().SetEditor(editor).Paste();e.preventDefault();});editor.create();varedt2newE(#editor2);//挂载粘贴事件edt2.txt.eventHooks.pasteEvents.length0;edt2.txt.eventHooks.pasteEvents.push(function(){WordPaster.getInstance().SetEditor(edt2).Paste();e.preventDefault();return;});edt2.create();}}h1,h2{font-weight:normal;}ul{list-style-type:none;padding:0;}li{display:inline-block;margin:010px;}a{color:#42b983;}测试前请配置图片上传接口并测试成功接口测试接口返回JSON格式参考为编辑器添加按钮components:{Editor,Toolbar},data(){return{editor:null,html:dd,toolbarConfig:{insertKeys:{index:0,keys:[zycapture,wordpaster,pptimport,pdfimport,netimg,importword,exportword,importpdf]}},editorConfig:{placeholder:},mode:default// or simple}},整合效果导入Word文档,支持doc,docx导入Excel文档,支持xls,xlsx粘贴Word一键粘贴Word内容自动上传Word中的图片保留文字样式。Word转图片一键导入Word文件并将Word文件转换成图片上传到服务器中。导入PDF一键导入PDF文件并将PDF转换成图片上传到服务器中。导入PPT一键导入PPT文件并将PPT转换成图片上传到服务器中。上传网络图片一键自动上传网络图片自动下载远程服务器图片自动上传远程服务器图片下载示例点击下载完整示例
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站建设基平顶山网站网站建设

Charge Limiter终极指南:免费保护MacBook电池健康的完整方案 【免费下载链接】charge-limiter macOS app to set battery charge limit for Intel MacBooks 项目地址: https://gitcode.com/gh_mirrors/ch/charge-limiter 还在为MacBook电池寿命担忧吗&#x…

张小明 2026/1/12 13:45:45 网站建设

企业网站设计分类专业的手机网站建设

用Python发送电子邮件 你可以用 Python 发送邮件,使用多个库,但最常见的是 smtplib 和 email。 Python 中的“smtplib”模块定义了一个 SMTP 客户端会话对象,可用于向任何带有 SMTP 或 ESMTP 监听器守护进程的互联网机器发送邮件。电子邮件…

张小明 2026/1/8 1:18:18 网站建设

东营做营销型网站何为门户网站

一、实验背景 随着信息技术的快速发展,网络安全问题日益突出,渗透测试作为主动防御的重要手段,已成为信息安全领域的核心技术之一。本实验基于Kali Linux平台,结合Nmap、Metasploit、社会工程学等工具与技术,模拟真实环…

张小明 2026/1/8 1:27:15 网站建设

wap手机网站建设方案58同城网站模板

ComfyUI ControlNet DWPose预处理器ONNX运行时配置实战指南 【免费下载链接】comfyui_controlnet_aux 项目地址: https://gitcode.com/gh_mirrors/co/comfyui_controlnet_aux 想要让你的ComfyUI ControlNet工作流中的DWPose预处理器发挥最佳性能吗?正确的ON…

张小明 2026/1/8 1:18:20 网站建设

网站建设哪些是需要外援的问题微信第三方平台

C#语法和Java语法非常相似,但有以下关键差异:1. 基本结构 - 都使用 class 、 public 、 private 等关键字,都有 main 方法(C#中是 Main ,Java是 main )。 - 变量声明和循环结构( for 、 while &…

张小明 2026/1/8 1:18:20 网站建设

大连建设网站公司唐山教育平台网站建设

LangFlow打造剧本写作协同平台的基础架构 在影视创作领域,AI 正从“辅助工具”悄然演变为“共同创作者”。但现实是,大多数编剧面对命令行、Python 脚本和 API 文档时仍望而却步。如何让 AI 真正走进创作一线?一个直观、灵活且支持团队协作的…

张小明 2026/1/8 1:18:19 网站建设