我的应用程序托管在Microsoft Azure上的VM中,并处理MS-Office文档(.doc,.docx,.xls,.xlsx,.ppt,.pptx)。用户需要查看存储在Azure Storage Service上的这些文档。
我正在寻找一个与我的应用程序集成的查看器。在显示这些文件之前,我的应用程序会进行一些验证,以检查用户是否可以查看文件,打印或下载。在某些情况下,当用户请求查看OpenXML文档(.docx)时,我的应用程序首先修改该文件,然后再将其显示给用户。
我的第一选择是使用Microsoft的免费查看器(http://products.office.com/en-us/office-online/view-office-documents-online),通过iframe将其集成到我的应用程序,但我不能限制用户访问文件 - 没有参数来禁用打印或下载。
我的第二选择是将这些文档转换为PDF并使用PDF查看器,但将这些文档转换为PDF需要专有解决方案(如Aspose)和Excel文件在转换为不具有良好外观时PDF。
在删除上述选项后,我正在考虑使用Office Web Parts和Sharepoint执行此操作的新VM。 Office Web Apps是一个不错的选择吗?我可以使用Office 365吗?我是否可以与我的应用程序集成,限制用户对文档的操作以及从OneDrive或Sharepoint数据库中查看文件?
如果您有任何其他解决方案,请告诉我。 谢谢。
答案 0 :(得分:7)
您可以在Azure中的VM上安装Office Web Apps Server,您不需要SharePoint或其他任何东西,Office Web Apps Server是一个独立的产品,它只能免费查看。 Web Apps Server具有详细记录的WOPI(Web应用程序开放平台接口协议),您可以使用它来连接到自定义文档系统。关于如何为WOPI做自定义主机,有各种各样的博客和示例。这是一些资源。
WOPI Protocol Documentation on MSDN
Example of Custom WOPI Host Build with MVC
WOPI -- Good Simple Explanation
查看CheckFileInfo Json,它可以选择将true传递给" DisablePrint"还有一些其他选项,还有一些像FileSharingUrl这样的未记录的文件,我在修补SharePoint 2013& Office Web App。
请注意,Office Web App Server不会安装在具有SQL Server的VM或任何其他服务器产品(如SharePoint)上。我不确定您是否可以使用Office.com上的Office Web Server通过WOPI协议连接到您自己的文档系统
答案 1 :(得分:0)
根据EULA Office Web Apps / Office Online Server可能未部署在Azure(或任何其他公共云)中。根据EULA安装OOS时: 用户权利...... 您可以在专用于客户使用的任何服务器上的任意数量的物理和虚拟操作系统环境中运行任意数量的服务器软件实例。服务器被定义为能够运行服务器软件的物理硬件系统。
基本上,因为Azure中的物理服务器由多个客户共享,因此根据定义,它们不专用于单个客户的使用。因此,为什么您在Microsoft网站上找不到任何引用,以描述在Azure中部署OWA或OOS的任何场景。