Java 程序与 Office Web Apps 整合

想要将自己的程序与Office Web Apps整合,关键在于提供如下两个接口:

1、CheckFileInfo服务,此服务会返回文件的基本信息

详情可参考[MS-WOPI] section3.3.5.1.1 章节

2、GetFile服务,此服务根据上一个服务返回的基本信息返回对应文件的数据流

详情可参考[MS-WOPI] section3.3.5.3.1 章节。

因此,只需要实现这两个接口即可保证office文档的在线浏览。我这里以Java为例,演示我是如何将两者整合的。

CheckFileInfo

此服务用于返回文档的基本信息,根据我的实践,这些基本信息只要包括如下几点即可:

  1. BaseFileName:文件名
  2. OwnerId:文件的拥有着(可以随便设置)
  3. Size:文档内容大小
  4. Version:文件的最后修改时间

我通过java提供的CheckFileInfo服务如下:

返回的JSON数据中,属性名一定要大写,OfficeFileInfo 文档基本信息类如下:

暴露出来的接口格式如下:

我在对应的磁盘里放了一个1.docx文档,访问此服务,得到的结果为:

如下图所示:

GetFile服务

此服务根据上一个服务返回的基本信息来请求文件流。此接口定义必须在前者的基础上再加上/contents,也就是如下格式:

因此,我的GetFile服务实现如下:

这样java程序即可与Office Web Apps整合了。