【问题标题】:Open WORD Document from Database OR WebService从数据库或 Web 服务打开 WORD 文档
【发布时间】:2011-04-13 20:33:41
【问题描述】:

如果不就这样做的优点进行大规模辩论,有人能否提供有关使用 VSTO 应用程序级插件(Word 2007)从数据库或 Web 服务中打开 MS Word 文档的指导?

谢谢


雅各布,

你是在建议

  1. PC/AddIn 查询服务器的文档
  2. 服务器将文档返回到 PC/AddIn
  3. PC/AddIn 在本地保存文档(作为临时文件)
  4. PC/AddIn 使用 word 打开文档功能在本地打开文件

然后

  1. PC/AddIn 将这些文件保存到本地
  2. PC/AddIn 将文件上传回服务器

这听起来并不难……事实上,这种解决方案具有一定程度的简单性,使编写/调试变得容易。

相对于 WebDAV,使用上述方法有什么优势?显然 webDav 是 alfresco 使用的...

还有一个问题,Word 没有从其 API 中的流中打开文档的功能吗?

T

【问题讨论】:

  • 您的意思是插件需要打开驻留在数据库或网络服务中的文档吗?那么对数据库的调用返回一个 blob 和/或 web 服务返回一个表示 MS Word 文档的字节数组?无论哪种情况,您最好的选择是将返回的数据保存到文件系统并从那里开始工作。
  • 谢谢。在原帖中添加了一些 cmets 以进行澄清。

标签: c# ms-word vsto


【解决方案1】:

正如 Jacob 所说,您可以将 blob 保存为 tmp 文件,然后以正常方式打开它。这是最简单的,但如果您需要将编辑内容写回,您还需要考虑锁定。

如果您需要担心这些事情,WebDAV 开始看起来更有趣。如果您可以让服务器端支持此功能,则可以通过 WebDAV 打开,然后让 Word 完成其余工作(尽管该文档可能是只读的,具体取决于客户端配置和服务器)。

最后,如果是 docx,您可以通过使用 InsertXML 将 Flat OPC 版本插入新 Word 来避免 tmp 文件。这有点复杂(因为您必须制作 Flat OPC XML,尽管在某处的 MSDN 博客文章中有这方面的代码),但如果您发现自己出于其他原因使用 InsertXML,这可能会很有吸引力。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-31
    • 1970-01-01
    相关资源
    最近更新 更多