服务器上的文字自动化

Cra*_*aig 2 automation ms-word

我们要求我们的 Web 应用程序能够进行邮件合并并生成一些 Word 文档。当然,使用 Word 自动化很容易做到这一点,但 Microsoft 不推荐 http://support.microsoft.com/kb/257757

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

在这种情况下人们通常会做什么?只要接受 Word 偶尔会挂起或寻求某些第三方解决方案即可。

Gav*_*vin 5

基本上你有三个选择:

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

从个人经验来看,我已经完成了第一个,并且效果很好,足以让我们的客户接受,第二个我搞砸了,但从未感到满意,而我已经完成了第三个,取得了巨大的成功(但需要相当多的工作)。

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