2016-01-04 45 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的当前设置。这就像一张纸牌房,马丁 - 布兰德提到,很可能很快就会造成安全灾难。