2014-10-29 70 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的任何場景的參考。

相關問題