从Javascript打开Microsoft Word的实例
本文关键字:实例 Word Microsoft Javascript 打开 | 更新日期: 2023-09-27 18:28:53
我正在构建一个应用程序,该应用程序将允许用户通过网页打开word文档。此web应用程序将使用机器上的本地word实例打开word文档。
我有两个可行的解决方案。
- 使用ActiveX(仅在IE上)
- 由于该应用程序是intranet应用程序,我正在使用web服务中的PsTools在远程机器上远程打开word实例
第二个体系结构是我现在所遵循的。它基于Web服务,该服务通过Javascript/jquery调用接收机器名称。稍后在web方法中,我将使用PsTools在远程机器上远程执行MS Word实例。
这两种体系结构都有效,但都有局限性。有了ActiveX,我可以在IE上使用它,它还需要更改网络策略才能允许ActiveX。使用PsTools,它工作得很好,但我无法获得Word.Exe
的路径,我只能假设它总是在''machinename'C$'Program Files(x86)'....
。
我们可能也会公开这个应用程序,在这种情况下,我们使用PsTools的解决方案将不再有效。
我只是想知道是否有其他更适合/跨浏览器的方式通过web应用程序打开本地单词实例
必须在远程位置修改文档,一种选择是让用户下载文档,然后修改并上传到服务器,这是毫无疑问的,因为我们正在替换一个厚客户端,并希望保持用户体验不变
我正在构建一个允许用户打开单词的应用程序文档。
如果是Intranet场景,那么您可以使用带有Office URI方案的应用程序协议来链接到文档,然后这些文档将在本地安装的客户端中打开。
Office 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
命令代表打开以进行编辑,u
是使用下面的URI的命令描述符,最后是文档本身的URI。还有其他命令,如ofv
(打开查看)和nft
(new from template中的),以及其他命令描述符,如用于保存的s
。
以下是完整的参考资料:https://msdn.microsoft.com/en-us/library/office/dn906146.aspx
在安装Office客户端时,会向Windows注册协议。
您可以在IIS服务器上轻松启用WebDAV。WebDAV客户端与Windows一起内置在客户端。
您也可以使用像FFWinPlugin插件这样的组件,它是SharePoint Foundation的一部分,或者OpenDocuments控件,它是与Office客户端一起安装的ActiveX控件。
我们可能会公开这个应用程序以及
我不鼓励你这样做,除非你的公司拥有或经营OneDrive或Office.com等服务。正如另一个答案中提到的那样,这可能会很快变得棘手。此外,对公众强制使用专有客户端并不是一个好主意。此外,即使是微软自己的解决方案也不能在浏览器之间可靠地工作,只能与IE配合使用(甚至Edge也有问题),这将迫使特定的浏览器向公众开放。不是个好主意。
然而,如果你真的需要,那么最好使用一些已经围绕WebDAV构建的解决方案。Alfresco ECM(企业内容管理)是公开产品的一个例子,它使用类似于您的用例的WebDAV。
IT Hit还有另一个,这里有一个现场演示:http://www.ajaxbrowser.com.他们还有一个关于如何在与用例相同的行上设置自己的WebDAV服务器的基本教程。您需要找到他们的文档。
当你说:"我们可能也会公开这个应用程序"时,你说的是什么规模?只是一个团队中的几个人,或者作为一个真正的web应用程序,需要处理编辑冲突、事务、锁定、性能等等。?一旦2-3个人开始编辑同一文档,即使是您提到的intranet解决方案也可能会让人头疼。
对于这种类型的文档共享,您基本上有两个选项:
- 在丰富的web UI方面进行了大量投资,该UI的行为与MS Word类似,后端服务将信息存储在可扩展的数据存储中,并提供同时编辑和文档下载,或者
- 与付费提供类似功能的第三方供应商API或白标签提供商集成。例如Box.com API、HyperOffice、FirePad等
如果你能将有问题的文档转换为一种类型的表单,这将是一个非常简单的问题。可能有一百种不同的服务提供嵌入式表单功能,并具有出色的报告和数据库管理功能。如果需要Word格式的文档,那么你的应用程序只需将存储的数据转换为.doc/.docx文档,供用户随意下载。
无论你朝哪个方向前进,都要尝试摆脱基于PsTools的当前设置。正如@Matt Burland所提到的,这就像一个纸牌屋,很可能很快就会引发一场安全灾难。