【问题标题】:Use powerpoint object-model without running the powerpoint application在不运行 powerpoint 应用程序的情况下使用 powerpoint 对象模型
【发布时间】:2012-01-13 10:27:04
【问题描述】:

我需要创建一个服务器,允许多个用户连接、上传他们的 Powerpoint 演示文稿并取回修改后的演示文稿。演示文稿应同时处理(使用线程)。 PowerPoint 已安装在服务器上。

有没有办法在不运行完整的 powerpoint 应用程序的情况下使用 powerpoint 对象模型? (我已经知道我可以使用 OpenXML,但我问的是对象模型。)

有人知道演示文稿是否确实可以同时处理(可能在不同的窗口或实例中)?

【问题讨论】:

  • 如果PPT安装在服务器上,只有服务器需要PPT,那为什么客户端机器上缺少PPT应用程序会成为问题呢?还是我错过了什么?

标签: vba com ms-office vsto powerpoint


【解决方案1】:

在您可以自动化 PowerPoint 实例之前,必须有一个要自动化的 PowerPoint 实例。

不运行就无法访问它的对象模型。

PowerPoint 只允许它自己的一个实例,因此多个同时实例是不可能的,至少在每个用户登录的基础上......您可以通过在多个登录会话中运行多个实例来使其飞行。多个虚拟机运行每个 PPT 的副本可能是另一种可能性。

虽然您可以在单个 PPT 实例中打开多个演示文稿,但这会适得其反。它不会使处理更快地发生;可能会减慢速度,因为多个打开的演示文稿会消耗更多资源。

根据我的经验,最好的办法是对进程进行序列化,以便一次打开和处理一个文件。既然你提到了多个窗口,让我把它扔进去:如果可能的话,不要在一个窗口中打开任何演示文稿;在大多数情况下,这不是必需的,隐藏演示文稿会大大加快速度。

【讨论】:

  • 请注意,即使你让它工作,它也不支持在服务器上进行办公自动化,原因有很多。引用:“微软目前不推荐也不支持来自任何无人值守、非交互式客户端应用程序或组件(包括 ASP、ASP.NET、DCOM 和 NT 服务)的 Microsoft Office 应用程序自动化,因为 Office 可能会展示在此环境中运行 Office 时出现不稳定的行为和/或死锁。” (support.microsoft.com/kb/257757/en-us)
  • 该文档接着描述了如果您尝试自动化服务器端可能会遇到的各种问题。其中一些不适用于 PowerPoint,您不必处理由多个实例引起的问题。至少对于某些应用程序,可以解决其他问题。我更喜欢的另一种方法是让独立 PC 访问服务器上的共享文件夹(上传文件出现的地方),并让独立 PC 进行处理。这样一来,任何故障都不会阻塞或以其他方式影响服务器。
猜你喜欢
  • 2017-06-17
  • 1970-01-01
  • 1970-01-01
  • 2015-05-04
  • 2012-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-09
相关资源
最近更新 更多