【问题标题】:Word automation on the server服务器上的 Word 自动化
【发布时间】:2009-04-09 12:18:42
【问题描述】:

我们有一个要求,我们的网络应用程序将进行邮件合并和 生成一些 Word 文档。当然,这很容易使用 Word 自动化,但微软不推荐 http://support.microsoft.com/kb/257757.

“微软目前不推荐,也不支持, 无人值守的 Microsoft Office 应用程序自动化, 非交互式客户端应用程序或组件(包括 ASP、 ASP.NET、DCOM 和 NT 服务),因为 Office 可能表现出不稳定 Office 在此环境中运行时出现的行为和/或死锁。”

在这种情况下,人们通常会做什么?只要接受那个词 偶尔会挂起或寻求一些第三方解决方案。

【问题讨论】:

    标签: automation ms-word


    【解决方案1】:

    基本上你有三个选择:

    1. 在服务器上运行它并接受这些后果。我从经验中知道事情确实会出错,但取决于您正在执行的任务的实时性和高优先级,这可能是您可以忍受的事情。基本上如果你必须这样做,尽量少做 Word 集成;如果它只是一个邮件合并,那么您可能会在 99.9% 的时间内毫无问题地离开。
    2. 使用第三方解决方案。但根据经验,除了非常简单的文档之外,这些都不能很好地完成工作。例如,如果您谈论的是可以从服务器上的 Word 文档生成 PDF 的东西,那么它的外观将永远不会与 Word 中的一样。
    3. 不要直接调用 Word,而是使用 .NET Open XML libraries 自己操作文档。我什至用 VB6 编写了一些用于处理 Word/Excel 2007 文档的东西,因为它们都采用了记录良好的 XML 格式。您必须使用 2007 格式,但它又快又好。但是我认为你必须手动进行邮件合并之类的事情,所以它可能不合适。此解决方案通常更适合处理文档,而不是替换 Word API 函数。

    根据我的个人经验,我完成了第一个,效果很好,让我们的客户接受,我搞砸了第二个,从不满意,我完成了第三个并取得了巨大的成功(但有相当多的工作)。

    简而言之,人们会根据成本(时间等)与可靠性来做各种事情:我建议选择 1 或 2 来获得快速(但不太可靠)的解决方案,或者选择 3 来获得更可靠(但成本更高)的解决方案.

    【讨论】:

      【解决方案2】:

      我使用自动化构建了一个 Powerpoint 应用程序。基本上它是一个幻灯片库网站,可以打开多个文件并将幻灯片移动到模板中。

      我遇到的第一个问题是安全性,我最终将应用程序设置为以管理员身份运行,这是不推荐的,大多数地方可能会对此操作皱眉。您需要灵活地自定义安全设置。

      我确实遇到了一些我们从未追查过的应用程序池崩溃,而且我相信我还必须让用户始终登录远程桌面,但始终断开连接。

      底线是你可以让自动化工作,但它很老套。如果你有灵活性,自动化是你最好的选择,那就去吧。否则我有两个想法。

      1. 探索 Open XML 和 Open XML SDK 的使用
      2. 查看在受信任的用户帐户上运行 WCF 服务。然后让您的网页调用或排队处理请求的工作。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-11
      • 2020-03-03
      • 1970-01-01
      • 1970-01-01
      • 2016-03-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多