从 Javascript 打开 Microsoft Word 实例

Cri*_*nSO 3 javascript c# jquery

我正在构建一个应用程序,允许用户通过网页打开 Word 文档。此 Web 应用程序将使用计算机上的本地 Word 实例打开 Word 文档。

我有两个可行的解决方案。

  1. 使用 ActiveX(仅在 IE 上)
  2. 由于该应用程序是内联网应用程序,因此我在Web服务中使用PsTools来远程打开远程计算机上的word实例。

第二种架构是我现在正在遵循的。它基于 Web 服务,通过 Javascript/jquery 调用接收机器名称。稍后在 Web 方法中,我使用 PsTools 在远程计算机上远程执行 MS Word 实例。

这两种架构都有效,但都有局限性。通过 ActiveX,我可以在 IE 上使用它,并且还需要更改网络策略才能允许 ActiveX。使用 PsTools,它工作得很好,但我无法获取 的路径Word.Exe,我只能假设它始终位于\\machinename\C$\Program Files(x86)\....

我们也可能会公开此应用程序,在这种情况下,我们使用 PsTools 的解决方案将不再起作用。

我只是想知道是否有其他更合适/跨浏览器的方式通过网络应用程序打开本地单词实例?

必须在远程位置修改文档,一种选择是让用户下载文档,然后修改它并将其上传到服务器,这是毫无疑问的,因为我们正在更换胖客户端并希望保留用户体验相同

Abh*_*lks 7

我正在构建一个应用程序,允许用户通过网页打开 Word 文档。

如果是 Intranet 场景,那么您可以使用具有 Office URI 方案的应用程序协议来链接文档,然后在本地安装的客户端中打开这些文档。

Office URI 架构如下所示:

<scheme-name>:<command-name>"|"<command-argument-descriptor> "|"<command-argument>
Run Code Online (Sandbox Code Playgroud)

具体来说,对于 Word,一个示例是:

<a href='ms-word:ofe|u|https://example.com/example.docx'>Edit</a>
Run Code Online (Sandbox Code Playgroud)

其中,ms-word:是方案,ofecommand 代表open-for-edit,是使用后面的 URI 的u命令描述符,最后是文档本身的 URI。还有其他命令,例如( open-for-view ) 和( new-from-template ),以及其他命令描述符,例如for saveofvnfts

这是完整的参考:https://msdn.microsoft.com/en-us/library/office/dn906146.aspx

安装 Office 客户端时,这些协议会注册到 Windows。

您可以在 IIS 服务器上轻松启用 WebDAV。WebDAV 客户端内置于 Windows 客户端。

您还可以使用FFWinPlugin 插件(属于 SharePoint Foundation 的一部分)或OpenDocuments 控件(与 Office 客户端一起安装的 ActiveX 控件)等组件。

我们也可能会公开此应用程序

我不鼓励您这样做,除非您的公司拥有或经营OneDriveOffice.com等服务。正如其他答案中提到的,这很快就会变得棘手。此外,无论如何,对公众强制使用专有客户端也不是一个好主意。此外,即使是微软自己的解决方案也不能跨浏览器可靠地工作,并且只能在 IE 上工作得最好(甚至 Edge 也有这方面的问题),这将迫使公众使用特定的浏览器。这不是一个好主意。

但是,如果您确实需要,那么如果您可以使用一些已经围绕 WebDAV 构建的解决方案会更好。Alfresco ECM(企业内容管理)是公开产品的一个示例,它使用与您的用例类似的 WebDAV。

IT Hit还提供了另一款产品,现场演示如下: http: //www.ajaxbrowser.com。他们还提供了关于如何在与您的用例相同的行上设置您自己的 WebDAV 服务器的基本教程。您将需要找到他们的文档。