在IE、Chrome 45及Firefox 53如下版本的浏览器网页中,可直接或间接调用微软免费开源的ActiveX控件DsoFramer便可嵌入本地安装的Office软件实如今线编辑或审阅Office文档。然而好景不长,从2015年开始Chrome、Firefox等新生代浏览器前后取消了对NPAPI插件的支持,在这些浏览器的后续版本中如何实现就成为了技术难题。IE浏览器又因各类问题致使其不断被用户抛弃,其市场份额已降到前端主流框架直接放弃兼容的地步。而随着Windows系统及Office软件的不断升级,DsoFramer的稳定性和兼容性问题愈来愈多,不支持64位浏览器不说,也不支持金山WPS及开源的LibreOffice等办公软件,要命的是2008年以来微软再无升级版发布,致使其用于商业用途具备很大风险,除非本身有研发能力解决这些问题。虽然随后有点聚WebOffice控件模仿DsoFramer接力举起免费的大旗,为其收费的电子印章产品导入客户,然而依然没法克服ActiveX控件固有的缺陷,只能在32位的IE浏览器中使用不说,每每还须要修改终端电脑IE的默认安全设置,实施成本高、加载运行时弹警告致使用户体验差,这不如今点聚WebOffice的官方网页和交流论坛也都没了踪迹,再也不继续维护升级,由于没开放源代码,第三方也没法修改其缺陷,其客户再次被抛弃了。前端
随着SAAS模式的兴起,纯网页实现的在线编辑或审阅Office文档成为了你们重点发力的方向,包括微软、金山、谷歌、阿里巴巴、腾讯、字节跳动等巨头在内的诸多公司纷纷发布了本身的在线Office服务并不断拓展其功能,对传统OA厂家都形成了必定威胁。通过多年的发展,虽然这些在线文档服务在多人协做分享、跨平台、使用成本及便捷性、维护升级等方面具备优点,但存在的问题也着实很多。相对于桌面版Office来讲,在线Office服务存在一些功能缺失,需网络随时在线方可用,而且不能保证彻底兼容桌面版生成的文档、文档内容复杂或表格记录大时打开缓慢甚至直接卡死,多文档同时编辑或嵌套内容难,版式文档原样呈现或打印效果有时没法保证一致性,私密性、安全性不够,在线服务器压力大,最关键的是其开放能力不足很难整合到OA、CRM、ERP、企业网盘等系统做为子模块使用。另外,很多企业因为历史的缘由都已购置了桌面版Office的长期使用受权,也整合到了本身的各类业务系统中使用,也就很难再每一年付费切换到在线Office版使用,毕竟还面临要改变用户使用习惯的难题。因此最好的解决办法仍是在原来的桌面版Office软件之上,经过技术手段让其可顺畅运行在Chrome、Firefox、Edge、360、Opera、QQ等主流版本浏览器中。小程序
实现微软Office、金山WPS等桌面软件嵌入浏览器网页实如今线编辑或审阅doc、docx、xls、xlsx、ppt、pptx、wps、et等办公文档,大致上有以下几个方案:浏览器
一、 浏览器插件方案安全
此方案目前主要适用于IE浏览器,网页中直接运行ActiveX控件调用桌面Office软件的自动化接口来实现。前述章节提到的免费DsoFramer及点聚WebOffice控件如此,收费的重庆软航NTKO Office文档控件、北京卓正PageOffice、广州华尔太WebOffice控件也是如此。而在Chrome 45、Firefox 53如下版本的浏览器中,收费的有江西金格iWebOffice智能文档控件在NPAPI插件中再调用ActiveX控件来请求桌面Office软件的自动化接口。这些商业收费控件,天然也为知足OA等系统的需求作了一些兼容性处理,如兼容更高版本的Windows系统、微软Office、金山WPS及64位浏览器,功能扩展如智能填报内容,文档加密、版本管理、拆分合并,痕迹保留等。2015年开始在非IE浏览器取消NPAPI插件支持后的技术突围过程当中,江西金格iWebOffice智能文档控件表现相对突出,其基于Chrome浏览器PPAPI可信插件技术发布的新版可用于兼容44以上版本,并经过在系统驱动层拦截并修改浏览器启动参数解决了PPAPI可信插件必须经过命令行启动浏览器才支持的技术难题,所以其销售价格很是昂贵。然而采用系统驱动的底层技术方案可能致使操做系统蓝屏死机不说,微软对系统驱动程序管理愈来愈严格,每一年的数字证书费用也是一笔不小的开支,何况很多单位的等级保护要求是不容许用系统服务或驱动程序的。另外PPAPI插件并未获得Firefox浏览器的支持,只是一个过渡技术方案而已,这不Chrome在2021年初已经取消了对Flash Player PPAPI插件的支持,也宣布了2021年6月终止对 NaCl、PNaCl 和 PPAPI插件的支持,这就完全宣告了浏览器插件模式即将寿终正寝。服务器
二、 特定浏览器方案网络
为了应对Chrome、Firefox等浏览器关闭插件接口后的技术挑战,又但愿保证原有业务系统的正常运行,一些实力较弱的公司只好推荐客户继续使用面临安全漏洞威胁的低版本Chrome浏览器,或者推荐使用双内核的国产360安全浏览器并要求切换到IE内核使用。实力稍强一点的公司基于Chromium低版本的内核开发特定版浏览器来确保NPAPI插件能够继续使用,用户没法享受高版本浏览器的功能不说,低版本内核存在的安全漏洞和程序BUG也没法获得修复。然而企业信息化系统每每是很是复杂的,对浏览器的要求比较高,极可能不支持这些特定版的浏览器,因此不能由于Office文档控件只能在这些特定浏览器上运行而致使OA等系统也跟着受到限制。app
三、 外接程序方案框架
重庆软航NTKO Office文档控件、北京卓正PageOffice、广州华尔太WebOffice控件等在NPAPI插件禁用后,纷纷采用浏览器外部协议(URL Procotol)方式来启动独立的Exe外接程序,而这个独立程序会内嵌一个IE内核用来支持ActiveX控件的加载运行,也号称兼容Chrome和Firefox等高版本浏览器运行了。这种技术实现致使在网页中每次启动Office控件时,都会弹出一个不胜其烦的确认对话框让最终用户选择,以下图所示:ide
用户使用体验不好,这些弹出的独立进程窗口和浏览器原来的网页窗口是彻底分离的,还涉及到两个窗口之间的数据传递和控制问题,增长了系统复杂性。若是用户提早启动了Word、Excel等程序使用,每每还会致使其控件在打开文档时异常,对商业用途的客户来讲这种技术方案基本上是不可接受的。加密
四、 双内核方案
此方案主要是依托Chrome等浏览器上的扩展程序IETab来实现,商业用途是须要付费使用的。其原理是经过在Chrome标签页中加载一个IE内核渲染的网页进行覆盖显示,这个网页再调用好比DsoFramer控件实现Office文档的编辑。因为Chrome的扩展程序必须经过谷歌或微软应用商店进行安装,致使此方案存在大规模自主可控部署难问题。并且IETab实现的效果是对整个网页生效,没法在Chrome内核网页中再实现局部加载IE内核网页来显示,何况IE对运行和下载ActiveX控件常弹出警告,用户体验不好,即便经过修改IE的默认安全设置来减小弹窗,然而这个修改设置过程也须要专业的技术人员才能完成,大幅度增长了实施成本。
经过上述总结的现有技术方案能够看出,想要在当前主流版本的Chrome、Firefox、Edge等浏览器网页中内嵌桌面Office软件实现文档或表格在线编辑等功能,核心就在于如何在各浏览器中实现一个统一的不依赖浏览器自身扩展技术的外接系统,同时必须对各品牌及各版本的浏览器有比较好的兼容能力才具备较大的实用价值。因此改进方案就是在网页中指定位置和大小,模拟实现一个内嵌到网页中显示的窗口,在这个窗口中再调用桌面Office软件的自动化接口实现doc、xls、ppt等文档的操做。前端还必须可对这个窗口进行实时控制,并且窗口必须跟随浏览器的移动和缩放、网页滚动、标签页切换、关闭等操做进行自动联动。这个窗口的宿主进程同时提供Web Socket的服务端和JSON打包命令的解析执行模块,前端就能够经过Web Socket链接后发送JSON打包的控制命令实现控制此窗口的动做。此方案能够说是上述外接程序方案的升级版,关键差别在于此方案可实现内嵌Word、Excel、PowerPoint、WPS文字、WPS表格等程序窗口到网页指定区域运行的效果,并且抛弃了经过IE内核来加载ActiveX控件的方案,解决了用户体验差、加载缓慢和内存占用高的问题。另外启动这个外接程序是经过Web Socket链接实现的,也解决了每次启动都会弹提示的烦恼问题,还有就是要提供相似ActiveX控件的自动升级替代方案,可实现静默自动升级,并额外增长了调用验证机制确保外接程序的安全。此技术方案早已申请了软件发明专利保护,并且已有对应实现的成熟软件产品,这就是跨浏览器的原生小程序软件系统—PluginOK中间件(https://codechina.csdn.net/zorrosoft/pluginok),自发布以来成功应用到电力、医疗、交通、安防、保险、工业设计等行业客户,得到了一致好评。其技术原理图以下:
微软Office网页小程序(http://zorrosoft.com/Files/msofficeapplet.txt )和金山WPS网页小程序(http://zorrosoft.com/Files/WPSOfficeapplet.txt )都提供了丰富的二次开发接口,并可根据本身须要进行二次开发。因为这个改进方案提供的Office网页控件接口和老方案的差别比较大,因此比较适合应用在新项目和新产品的中。那么对于哪些已经调用了微软DsoFramer,点聚WebOffice、NTKO Office等文档控件的信息化系统,是否有代价比较小的改造方案的升级方案呢?答案天然是确定的,能够借助PluginOK中间件之上的IE控件小程序,动态实现双内核的运行效果,相似现有方案中的双内核方式,但解决了分发和在线升级的难题,同时可实如今Chrome网页中局部加载显示的效果,用户体验也获得了大幅度提高。无需改变这些文档控件的调用方式,只须要在网页中判断若是遇到的是非IE浏览器时,请求启动IE控件小程序加载便可。这里是实现的效果展现视频:https://www.bilibili.com/video/BV1zp4y1n7R6/
一个好的技术实施方案,首先是要知足客户的刚性需求,其次是尽可能下降采购、开发、实施及维护的总成本,再次是要有良好的兼容性和稳定性,最后需尽可能确保技术方案不能由于浏览器的升级而失效。本文基于当前最新的技术信息和实践经验,给你们提供了PluginOK中间件搭配Office网页小程序这样一个稳定可靠、体验好、兼容性佳的桌面Office文档控件技术方案,尤为适合在内网处理复杂文档和数据量大的表格场景,以供你们技术选型参考。