2016-01-04 84 views
2

我正在構建一個應用程序,允許用戶通過網頁打開Word文檔。該Web應用程序將使用機器上的本地單詞實例打開單詞文檔。從Javascript中打開Microsoft Word的實例

我有兩個工作解決方案。

  1. 使用ActiveX(僅適用於IE)
  2. 由於應用程序是Intranet應用程序,我使用PsTools在Web服務中的遠程機器上遠程打開的Word實例。

第二個架構是我現在正在遵循的。它基於一個通過Javascript/jquery調用接收機器名稱的Web服務。後來在Web方法中,我使用PsTools遠程執行遠程機器上的MS Word實例。

這兩種架構都能正常工作,但兩者都有侷限性。使用ActiveX我可以在IE上使用它,並且還需要更改網絡策略以允許ActiveX。使用PsTools,它工作的很好,但我無法獲得Word.Exe的路徑,我只能假設它總是在\\machinename\C$\Program Files(x86)\....

我們也可能會公開此應用程序,在這種情況下,我們使用PsTools的解決方案將不再適用。

我只是想知道是否有任何其他更適合/跨瀏覽器的方式來通過Web應用程序打開本地單詞實例?

該文件必須在遠程位置進行修改,一個選項是讓用戶下載文件,然後修改並上傳到服務器,這是沒有問題的,因爲我們正在更換厚客戶端,並希望保持相同的用戶體驗

+9

難道你不能只提供一個鏈接來下載Word文件?大多數機器將被配置爲在下載時自動打開Word文檔。 – Jaco

+0

@Jaco,絕對是我錯過了在問題中提到的東西,文檔在遠程驅動器上,它必須在那裏修改。所以讓它下載然後修改然後再上傳對於用戶來說會很複雜,我們不能這麼做。 – CriketerOnSO

+0

這將是非常不同的解決方案,但我會使用Microsoft的Office.js:[link](https://msdn.microsoft.com/en-us/library/office/fp142185.aspx) – remdevtec

回答

1

我正在構建一個應用程序,允許用戶通過網頁打開文字 文檔。

如果是Intranet方案,那麼您可以使用帶有Office URI方案的應用程序協議來鏈接到將在本地安裝的客戶端打開的文檔。

廳的URI模式是這樣的:

<scheme-name>:<command-name>"|"<command-argument-descriptor> "|"<command-argument> 

對於Word具體地說,一個例子是:

<a href='ms-word:ofe|u|https://example.com/example.docx'>Edit</a> 

其中,ms-word:是方案,ofe命令代表開放的-editu的命令描述符,使用後面的URI,最後是URI到文檔本身。還有其他的命令,如ofv開放的視野)和nft新的模板),以及其他命令的描述,例如s保存

下面是完整的參考:https://msdn.microsoft.com/en-us/library/office/dn906146.aspx

安裝Office客戶端時,協議與Windows註冊。

您可以在IIS服務器上輕鬆啓用WebDAV。 WebDAV客戶端在客戶端使用Windows內置。

您還可以使用組件如FFWinPlugin Plug-in(它是SharePoint Foundation的一部分)或OpenDocuments Control(它是與Office客戶端一起安裝的ActiveX控件)。

我們可以讓這個應用程序公開以及

我會鼓勵你這樣做,除非你的公司擁有或交易,與像OneDriveOffice.com服務。這可能會很快變得棘手,正如其他答案中提到的那樣。此外,無論如何,在大衆上執行專有客戶並不是一個好主意。此外,即使微軟自己的解決方案也無法在各種瀏覽器中可靠地工作,並且只能在IE瀏覽器上最好地工作(,即使Edge在這個上也存在問題),這會迫使特定的瀏覽器公開。不是一個好主意。

但是,如果您確實需要,那麼如果您可以使用一些圍繞WebDAV構建的解決方案,那將會更好。 Alfresco ECM(企業內容管理)是一個使用WebDAV的公開發行的例子,類似於您的用例。

還有一個由IT點擊和現場演示在這裏:http://www.ajaxbrowser.com。他們還有一個關於如何在你的用例的同一行設置自己的WebDAV服務器的基本教程。你需要找到他們的文檔。

1

當你說:「我們也可能公開這個應用程序」,你說什麼樣的規模?只是來自一個團隊的幾個人,或者是一個真正的Web應用程序,需要處理編輯衝突,交易,鎖定,性能等?即使您提到的內聯網解決方案可能會在2-3人開始編輯同一文檔時立即變得令人頭疼。

對於這種類型的文檔共享,你基本上有兩種選擇:

  1. 在其功能類似於微軟Word,與將信息存儲在一個可擴展的後端服務豐富的Web用戶界面的重大投資數據存儲並提供同步編輯和文檔下載,或者與提供類似功能的第三方供應商API或白標籤提供商集成,以付費。例如。 Box.com APIsHyperOfficeFirePad

這將是一個超級簡單的問題來解決,如果你能在問題將文檔轉換爲一種形式。可能有一百種不同的服務提供具有出色報告和數據庫管理功能的嵌入式表單功能。如果需要Word格式的文檔,那麼您的應用只會將存儲的數據轉換爲.doc/.docx文檔,供用戶隨意下載。

無論你走的方向是什麼,試着擺脫基於PsTools的當前設置。這就像一張紙牌房,馬丁 - 布蘭德提到,很可能很快就會造成安全災難。