2014-10-29 52 views
2

我的应用程序托管在Microsoft Azure上的VM中,并处理MS-Office文档(.doc,.docx,.xls,.xlsx,.ppt,.pptx)。用户需要查看存储在Azure存储服务上的这些文档。用于Azure存储的Microsoft Office Web查看器托管文档

我正在寻找一个查看器来与我的应用程序集成。在显示这些文件之前,我的应用程序会进行一些验证,以检查用户是否可以查看文件,打印或下载。在某些情况下,当用户请求查看OpenXML文档(.docx)时,我的应用程序会在向用户显示文件之前首先修改该文件。

我的第一选择是使用Microsoft的免费阅读器(http://products.office.com/en-us/office-online/view-office-documents-online),通过iframe将其集成到我的应用程序中,但我无法限制用户对文件的访问 - 没有禁用打印或下载的参数。

我的第二选择是将这些文档转换为PDF并使用PDF查看器,但将这些文档转换为PDF需要专有解决方案(如Aspose)和Excel文件在转换为PDF时不具备良好的外观。

在取消上述选项之后,我开始考虑使用Office Web部件和Sharepoint的新虚拟机来执行此操作。 Office Web Apps是不错的选择吗?我可以使用Office 365吗?我可以与我的应用程序集成,限制用户对文档的操作并查看OneDrive或Sharepoint数据库中的文件吗?

请让我知道,如果你有任何其他的解决方案。 谢谢。

+0

是否为您解决了以下问题? – 2017-01-26 13:02:17

回答

6

您可以在Azure的虚拟机上安装Office Web Apps Server,不需要SharePoint或其他任何东西,Office Web Apps Server是独立产品,并且仅供查看。 Web Apps Server具有良好的文档记录WOPI(Web应用程序开放平台接口协议),您可以使用它来连接到自定义文档系统。关于如何为WOPI定制主机,有各种各样的博客和样本。这里有一些资源。

Introduction to WOPI

WOPI Protocol Documentation on MSDN

Example of Custom WOPI Host Build with MVC

WOPI -- Good Simple Explanation

看一看CheckFileInfo Json,它有一个选项来传递真实的 “DisablePrint” 和其他选项的负荷,也有一些没有记录的一个像FileSharingUrl,这是我在修补SharePoint 2013时发现的& Offi ce Web App。

请注意,Office Web App Server不会安装在具有SQL Server或任何其他服务器产品(如SharePoint)的VM上。我不确定您是否可以使用Office.com上的Office Web Server通过WOPI协议连接到自己的文档系统

+0

谢谢你pateketu!这对我帮助很大。我已经安装了OWA,并且它正在通过iframe集成到我的应用程序中。我不知道如何构建我自己的WOPI服务器。你知道配置选项“DisablePrint”和“FileSharingUrl”是否与Office Web Apps 2013 SP1一起使用?用户查看文档时是否可以禁用打印或下载? – 2014-11-04 18:39:46

+0

很高兴为您提供帮助!,我认为DisablePrint等也可以与OWA 2013 SP1一起使用。 CheckFileJson中还有一个DownloadUrl属性,所以我猜如果你不传递一个值,那么下载按钮也将被禁用。然而,使用这个属性你也必须提供你自己的WOPI主机,它可能只是一个ASP.NET Handler或一个简单的WebAPI控制器,具有两个动作CheckFileInfo和GetFile。 – pateketu 2014-11-05 16:24:37

+0

@pateketu我猜想微软提供MWA服务器的方式有一些变化,我要为客户端构建一个解决方案,其业务是云存储,如果必须在获得云之前构建POC,我会遵循什么路径存储伙伴计划,我的意思是任何试用?此外,我希望您知道,我的客户对Microsoft托管MS Office应用程序更感兴趣,而无需Sharepoint。 – 2016-06-10 04:46:04

0

根据EULA Office Web Apps/Office Online Server可能未部署在Azure中(或任何其他公共云)。根据安装OOS时的EULA: 用户权利... 您可以在专用于客户使用的任何服务器上的任意数量的物理和虚拟操作系统环境中运行任意数量的服务器软件实例。服务器被定义为能够运行服务器软件的物理硬件系统。

基本上,因为Azure中的物理服务器由多个客户共享,根据定义,它们并不专用于单个客户的使用。因此,为什么在Microsoft网站上找不到任何描述在Azure中部署OWA或OOS的任何场景的参考。

相关问题