本发明涉及文档编辑领域,具体涉及一种兼容多浏览器的office文档在线编辑方法和系统。
背景技术:
随着信息化技术地不断发展,b/s架构的应用系统在各行各业的应用也越来越广泛,用户只需要通过浏览器就可以访问服务器的相关资源,而办公过程中或多或少都会遇到对office文档进行处理的情况;由于b/s架构的特点,早期用户只能通过把文档下载到本地再进行预览、编辑、上传等操作,使用非常不方便。后期微软提供一款开源activex控件dsoframer,用于在线编辑word、excel、powerpoint,但是只能嵌套在ie内核的浏览器下使用,目前主流浏览器chrome、火狐等浏览器均不支持;其次是微软十年前已停止对dsoframer更新,目前只支持office2007和之前的版本。
现有技术存在以下缺陷:
1.当前仅支持office2007之前的版本,office2010、office2013、office2016不支持;
2.不能跨浏览器使用,只支持ie内核浏览器,不支持chrome、火狐等浏览器;
3.只支持手工编辑,不支持javascript与office文档交互(文字、图片、表格、书签)。
技术实现要素:
针对上述现有技术存在的问题,本发明提供了一种兼容多浏览器的office文档在线编辑方法,包括:
开发支持当前微软office办公软件的可在线预览和编辑操作的插件;
完成在非ie内核的浏览器使用activex插件,实现在其他非ie内核的浏览器下处理office文档;
完成浏览器的javascript与office文档交互操作。
作为上述方案的进一步优化,所述的微软office办公软件包括office2003、office2007、office2010、office2013和office2016五个版本的文档。
作为上述方案的进一步优化,在非ie内核的其他浏览器使用activex插件的实现步骤包括如下:
(1)用户在本地客户端部署安装微软office办公软件;
(2)根据兼容多浏览器office文档在线编辑,对应开发可嵌入ie内核的浏览器kdgcbrower.exe;
(3)用户通过自定义协议urlprotocol调用本地客户端部署安装的应用浏览器程序kdgcbrower.exe,且将待访问编辑office文档的url和参数信息至urlprotocol;
(4)开发并运行windowsservice服务kdgcservice.exe,检测本地客户端是否安装kdgcbrower.exe,且对本地服务器已安装的kdgcbrower.exe进行版本号扫描检测;
(5)将kdgcbrower.exe、新增注册表操作、kdgcservice.exe统一打包成kdgcsetup.exe安装包;
(6)将步骤(5)打包的kdgcsetup.exe安装包上传至服务器的web工程创建的目录中,且提供web工程目录可在线下载服务;
(7)在javascript添加调用kdgcservice.exe应用程序,检测当前客户端是否安装kdgcsetup.exe功能,若检测结果为未安装或当前安装版本过低,则将当前页面跳转至web工程目录在线下载界面安装更新;
(8)在html或jsp中引入标签;
(9)将待执行文档通过以参数的形式上传至kdgcbrower.exe,通过kdgcbrower.exe来打开当前待执行文档;
(10)web应用接收当前客户端上传的文件请求,根据上传文档路径读取文档,且返回待执行的文档流。
作为上述方案的进一步优化,嵌入ie内核的浏览器kdgcbrower.exe的开发包括如下:
(21)在本地服务器通过visualbasic6.0编程语言,新建本地工程,且调用webbrowser控件;
(22)在步骤(21)的新建工程里新建一个窗体,且调用webbrowser控件;
(23)设置新建工程的属性为submain启动,编写submain()方法,且制定入参规则①|②,①代表webbrowser访问url,②代表窗体属性;
(24)编译当前工程,生成kdgcbrower.exe。
作为上述方案的进一步优化,kdgcservice.exe的检测浏览器版本过程包括如下:
(31)用户对当前客户端的kdgcbrower.exe应用程序进行安装情况检测,若当前客户端的检测结果为未安装kdgcbrower.exe,kdgcservice.exe应用程序弹出页面提示用户下载安装kdgcbrower.exe;
(32)若检测当前客户端已安装kdgcbrower.exe,通过getregedit方法,获取当前客户端的kdgcbrower.exe应用程序注册表的安装版本号;
(33)kdgcservice.exe应用程序检测当前客户端安装的版本与服务器版本不一致时,kdgcservice.exe弹出页面提示用户将kdgcbrower.exe应用程序升级至与服务器版本一致。
作为上述方案的进一步优化,所述的支持javascript与office文档交互方法包括插入文字、图片、表格和书签。
作为上述方案的进一步优化,实现支持javascript与office文档交互方法的步骤如下:
(41)通过javascript语言获取当前工程的object标签;
(42)通过步骤(41)的object标签获取待执行office文档的activedocument对象;
(43)根据officevba编程语言编辑文档中的文字、图片、表格和书签,将常用操作通过javascript封装成方法,提供当前kdgcbrower.exe应用程序所有界面使用。
本发明还公开了一种兼容多浏览器的office文档在线编辑系统,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1-7任一所述的一种多浏览器的office文档在线编辑方法。
本发明还公开了一种存储有计算机程序的计算机可读存储介质,该程序被处理器执行时实现如权利要求1-7任一所述的一种多浏览器的office文档在线编辑方法。
本发明采用上述技术方案,与现有技术相比,本发明的一种多浏览器的office文档在线编辑方法,具有以下有益效果:
1.本发明的一种兼容多浏览器的office文档在线编辑方法,通过开发一款嵌入ie内核的浏览器,使用office文档时通过urlprotocol指向所述的浏览器,可在线打开并编辑不同版本的office文档。
2.本发明的一种兼容多浏览器的office文档在线编辑方法,嵌入ie内核的浏览器支持javascript与office文档交互,利用officevba编程语言,将office常用操作包括插入文字、图片、表格和书签等功能封装为统一的接口,简化用户的操作。
3.本发明的一种兼容多浏览器的office文档在线编辑方法,根据本发明开发的嵌入ie内核的浏览器通过版本检测,实现软件自动安装和升级,且只需通过常用的桌面浏览器实现office办公,无需额外学习新内容,方便用户上手,增强用户体验。
附图说明
图1为本发明的一种兼容多浏览器的office文档在线编辑系统的结构示意图;
图2为本发明的一种兼容多浏览器的office文档在线编辑系统的流程示意图;
图3为本发明的一种兼容多浏览器的office文档在线编辑系统的客户端结构图;
图4为本发明的一种兼容多浏览器的office文档在线编辑系统的服务器结构图;
图5为本发明的一种兼容多浏览器的office文档在线编辑方法的流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面通过附图中及实施例,对本发明进行进一步详细说明。但是应该理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限制本发明的范围。
实施例1
参见图1-5,本优选实施例提供一种兼容多浏览器的office文档在线编辑系统,包括
服务器200,包括第一浏览器模块210、文档存储模块220和文档调用模块230;
如上所述,第一浏览器模块210,用于显示office文档;
文档存储模块220,用于存储office文档;
文档调用模,230,用于客户端访问服务器的office文档的调用;
客户端100,用户在本地安装office办公软件,且通过调用本地部署安装的office在线编辑工具远端调用编辑存储于服务器200的文档;
优选地,上述的客户端100包括第二浏览器模块110、软件模块120、安装检测模块130、升级模块140和插件调用模块150;
第二浏览器模块110,用于显示office文档;
软件模块120,用于打开和操作office文档,且为微软office办公软件office2003、office2007、office2010、office2013和office2016五个版本的任意一个,本实施例优选为office2016;
安装检测模块130,用于检测当前客户端的office在线编辑的工具的安装情况;
升级模块140,用于将当前客户端的office在线编辑的工具与服务器200的版本号统一。
实施例2
本发明提供了一种兼容多浏览器的office文档在线编辑方法,具体包括如下步骤:
s1,用户在本地客户端100部署安装微软office办公软件;
根据兼容多浏览器office文档在线编辑,对应开发可嵌入ie内核的浏览器kdgcbrower.exe;
用户通过自定义协议urlprotocol调用本地客户端100部署安装的应用浏览器程序kdgcbrower.exe,且将待访问编辑office文档的url和参数信息至urlprotocol;
s2,开发并运行windowsservice服务kdgcservice.exe,检测本地客户端100是否安装kdgcbrower.exe,且对本地服务器200已安装的kdgcbrower.exe进行版本号扫描检测;
s3将kdgcbrower.exe、新增注册表操作、kdgcservice.exe统一打包成kdgcsetup.exe安装包;
s4将步骤(5)打包的kdgcsetup.exe安装包上传至服务器200的web工程创建的目录中,且提供web工程目录可在线下载服务;
s5在javascript添加调用kdgcservice.exe应用程序,检测当前客户端100是否安装kdgcsetup.exe功能,若检测结果为未安装或当前安装版本过低,则将当前页面跳转至web工程目录在线下载界面安装更新;
s6在html或jsp中引入标签;
s7,将待执行文档通过以参数的形式上传至kdgcbrower.exe,通过kdgcbrower.exe来打开当前待执行文档;优选地,kdgcoffice://|http://127.0.0.0:8080/appweb/editword.do?file=d:/uploadfile/test1.doc|width=1200px;height=800px;|1234;
s8,web应用接收当前客户端100上传的文件请求,根据上传文档路径读取文档,且返回待执行的文档流。
优选地,注册表中添加如下值:
windowsregistryeditorversion5.00
[hkey_classes_root\kdgcoffice]
@="kdgcofficeprotocol"
"urlprotocol"="c:\\kdgcsoft\\officebrower\\kdgcbrower.exe"
"version"="1.1.9"
[hkey_classes_root\kdgcoffice\defaulticon]
@="c:\\kdgcsoft\\officebrower\\kdgcbrower.exe,1"
[hkey_classes_root\kdgcoffice\shell]
[hkey_classes_root\kdgcoffice\shell\open]
[hkey_classes_root\kdgcoffice\shell\open\command]
@="\"c:\\kdgcsoft\\officebrower\\kdgcbrower.exe\",\"%1\""。
优选地,在html或jsp中引入标签,具体代码如下:
<objectclassid="clsid:00460182-9e5e-11d5-b7c8-b8269041dd57"id="framercontrol1"style="left:0px;top:0px;width:100%;height:95%"viewastext>
<paramname="_extentx"value="6350">
<paramname="_extenty"value="6350">
<paramname="bordercolor"value="-2147483632">
<paramname="backcolor"value="-2147483643">
<paramname="forecolor"value="-2147483640">
<paramname="titlebarcolor"value="-2147483635">
<paramname="titlebartextcolor"value="-2147483634">
<paramname="borderstyle"value="1"></object>。
作为上述方案的进一步优化,嵌入ie内核的浏览器kdgcbrower.exe的开发包括如下:
(21)在本地服务器通过visualbasic6.0编程语言,新建本地工程,且调用webbrowser控件;
(22)在步骤(21)的新建工程里新建一个窗体,且调用webbrowser控件;
(23)设置新建工程的属性为submain启动,编写submain()方法,且制定入参规则①|②,①代表webbrowser访问url,②代表窗体属性,如宽度、高度、距离左边距、上边距等信息;
优选地,
如设置webbrowser访问:
http://127.0.0.0:8080/appweb/editword.do?file=d:/uploadfile/test1.doc|width=1200px;height=800px;设置窗体宽度1200px,高度800px:http://127.0.0.0:8080/appweb/editword.do?file=d:/uploadfile/test1.doc;
(24)编译当前工程,生成kdgcbrower.exe。
作为上述方案的进一步优化,kdgcservice.exe的检测浏览器版本过程包括如下:
(31)用户对当前客户端100的kdgcbrower.exe应用程序进行安装情况检测,若当前客户端100的检测结果为未安装kdgcbrower.exe,kdgcservice.exe应用程序弹出页面提示用户下载安装kdgcbrower.exe;
(32)若检测当前客户端100已安装kdgcbrower.exe,通过getregedit方法,获取当前客户端100的kdgcbrower.exe应用程序注册表的安装版本号;
(33)kdgcservice.exe应用程序检测当前客户端100安装的版本与服务器200版本不一致时,kdgcservice.exe弹出页面提示用户将kdgcbrower.exe应用程序升级至与服务器200版本一致。
作为上述方案的进一步优化,所述的支持javascript与office文档交互方法包括插入文字、图片、表格和书签。
作为上述方案的进一步优化,实现支持javascript与office文档交互方法的步骤如下:
(41)通过javascript语言获取当前工程的object标签;
(42)通过步骤(41)的object标签获取待执行office文档的activedocument对象;
(43)根据officevba编程语言编辑文档中的文字、图片、表格和书签,将常用操作通过javascript封装成方法,提供当前kdgcbrower.exe应用程序所有界面使用。
实施例3
本发明的一种兼容多浏览器的office文档在线编辑方法,支持javascript与office文档交互,包括如下:
(41)通过javascript语言获取当前工程的object标签;
(42)通过步骤(41)的object标签获取待执行office文档的activedocument对象;
(43)根据officevba编程语言编辑文档中的文字、图片、表格和书签,将常用操作通过javascript封装成方法,提供当前kdgcbrower.exe应用程序所有界面使用。
本发明提出的一种兼容多浏览器的office文档在线编辑方法和系统,通过构建服务器端,部署安装第一浏览器模块、文件存储系统和文档调用系统,响应客户端上传的在线编辑office文档请求,通过第一浏览器模块调用本地存储的文档,再在客户端的第二浏览器模块打开;本发明还构建了客户端,包括第二浏览器模块、软件模块、安装检测模块和升级模块,用户通过安装检测模块和升级模块完成客户端与服务器端在线编辑工具的版本统一,再通过服务器端返回的文档流在线打开存储于服务器端的office文档。本发明的一种兼容多浏览器的office文档在线编辑方法和系统,支持当前微软多个版本的office办公软件,而且由于开发集成了ie内核的浏览器,不再受限于传统的ie浏览器,增强受众用户,同时还支持javascript与office文档交互,真正做到在线编辑任意office文档,增强用户的办公效率,便携人们的生活。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。