一、配置Office Online Server支持文档在线预览
上一篇文章我们说了如何搭建Office文档在线预览服务 Office Online Server(以下简称OOS),搭建好之后,设置可以通过URL打开文档参考 "OpenFromUrlEnabled",具体Powershell命令如下:
bash
New-OfficeWebAppsFarm -InternalURL "http://192.168.75.158" -AllowHttp -EditingEnabled -OpenFromUrlEnabled
其他命令可查阅官方文档:
https://learn.microsoft.com/zh-cn/powershell/module/officewebapps/?view=officewebapps-ps
配置好之后,可以通过访问:http://[服务域名]/op/generate.aspx 访问文档在线预览的演示页面,如下图:

二、WOPI Server
WOPI Server是基于WOPI协议的文件预览服务,主要用于与Office Online Server(微软的在线文档预览工具)集成,实现文档的在线查看和编辑功能。以下是关键信息:
核心功能:
- 协议支持:遵循WOPI协议,通过CheckFileInfo和GetFile接口与Office Online Server交互 。
- 文件预览:支持Word、Excel、PPT、PDF等格式的在线预览,需搭配Office Online Server使用 。
技术实现:
-
开发语言:常见实现包括Java(如zzq0324/wopi-server项目)和C# 。
-
WOPI协议定义了文档宿主系统(您的应用)与Office Online Server之间的通信标准。集成需要实现两个关键接口:
- **
/wopi/files/{name}/contents** - 用于获取和保存文档内容 - **
/wopi/files/{name}** - 用于获取文档元数据和操作权限
- **
-
部署要求:需配置WOPI Host(自定义服务器)和WOPI Client(Office Online Server) 。
使用示例
- URL构造:用户访问自定义WOPI Server的页面(如
https://your-wopi-server.com/wopi/files/123),页面内嵌iframe加载Office Online Server的预览地址(如https://oos.example.com/we/wordeditorframe.aspx?WOPISrc=...) 。 - 配合OOS使用如下
bash
word:http://192.168.2.109/wv/wordviewerframe.aspx?WOPISrc=http%3a%2f%2f192.168.2.102%3a8080%2fwopiserver%2ffiles%2f2%3faccess_token%3dOfficeOnlineServer
pdf:http://192.168.2.109/wv/wordviewerframe.aspx?PdfMode=1&WOPISrc=http%3a%2f%2f192.168.2.102%3a8080%2fwopiserver%2ffiles%2f4%3faccess_token%3dOfficeOnlineServer
ppt:http://192.168.2.109/p/PowerPointFrame.aspx?WOPISrc=http%3a%2f%2f192.168.2.102%3a8080%2fwopiserver%2ffiles%2f1%3faccess_token%3dOfficeOnlineServer
excel:http://192.168.2.109/x/_layouts/xlviewerinternal.aspx?WOPISrc=http%3a%2f%2f192.168.2.102%3a8080%2fwopiserver%2ffiles%2f3%3faccess_token%3dOfficeOnlineServer
Office Online Server目前支持word/pdf/excel/ppt的预览,效果分别如下:
-
word

-
pdf

-
excel

-
ppt

开源项目
- GitHub项目:如
cs3org/wopi-server提供本地存储测试支持 。 - Gitee项目:如
zzq0324/wopi-server(Java实现)需配合Office Online Server使用 。
三、安全加固
Office Online Server存在两个安全隐患,一是OOS暴露到公网的话会被别人利用,二是加载的文档地址容易被盗链。因此就需要以下两个配置进行加固:
bash
# 安全配置脚本
# 限制OOS仅加载WOPI提供的文档URL
Set-OfficeWebAppsFarm -WOPIHosts "https://wopi.example.com" -AllowHttp:$false
其中https://wopi.example.com需替换成自己的wopi 服务地址
bash
# 防止文档地址被盗
Set-OfficeWebAppsFarm -EditingEnabled:$true -ClipartEnabled:$false
WOPI如何可实现为Office Online Server提供预览的文档地址外,还可以提供在线编辑。通过对wopi接口协议的实现,可完善自己的office 文档在线预览和编辑功能。