关于Office Web Apps,可以参考《在线浏览 Office 文档之 Office Web Apps》和《应用程序与 Office Web Apps 整合》。
从《应用程序与 Office Web Apps 整合》中可知,想要将自己的程序与其整合,关键在于提供如下两个接口:
1、CheckFileInfo服务,此服务会返回文件的基本信息
详情可参考[MS-WOPI] section 3.3.5.1.1 章节
2、GetFile服务,此服务根据上一个服务返回的基本信息返回对应文件的数据流
详情可参考[MS-WOPI] section 3.3.5.3.1 章节。
因此,只需要实现这两个接口即可保证office文档的在线浏览。我这里以Java为例,演示我是如何将两者整合的。
CheckFileInfo
此服务用于返回文档的基本信息,根据我的实践,这些基本信息只要包括如下几点即可:
- BaseFileName:文件名
- OwnerId:文件的拥有着(可以随便设置)
- Size:文档内容大小
- Version:文件的最后修改时间
我通过java提供的CheckFileInfo
服务如下:
返回的JSON数据中,属性名一定要大写,OfficeFileInfo 文档基本信息类如下:
暴露出来的接口格式如下:
我在对应的磁盘里放了一个1.docx
文档,访问此服务,得到的结果为:
如下图所示:
GetFile服务
此服务根据上一个服务返回的基本信息来请求文件流。此接口定义必须在前者的基础上再加上/contents
,也就是如下格式:
因此,我的GetFile服务实现如下:
这样java程序即可与Office Web Apps整合了。