delphi - 如何在不使用 COM 自动化的情况下处理 Word 文档?

标签 delphi automation ms-word

我已经阅读了有关该问题的多篇文章,但似乎没有人对我的问题得出一个像样的结论。 (也许我想看看最近是否有什么事情发生。)

我有一个处理 promise 的小型慈善应用程序。为此,它需要处理和打印文档。

问题是,如果Word在后台打开,应用程序线程将挂起并且不会响应Word的关闭,我必须手动回滚并关闭Word。当然,一切都很好,但我根本无法保证最终用户会关闭 Word,即使我将说明放在用户手册中也是如此。

我不太在意速度,但我想如果可以增强它,那将是一个不错的小奖励。

是否有针对 Delphi 的库可供我打开、编辑、打印和保存文档?如果没有,是否有一种方法可以使用Word Automation,使其在打开时不会与Word的另一个打开句柄发生冲突?

最佳答案

如果您使用GetActiveOleObject,您将获得正在运行的Word 实例。 通过使用CreateOleObject,您将获得一个新实例,并且不会受到其他正在运行的实例的困扰。

如果您使用 TWordApplication 包装器,您可以将 ConnectKind 设置为 ckNewInstance 来完成此操作。默认情况下,TWordApplication 将尝试连接正在运行的实例。

关于delphi - 如何在不使用 COM 自动化的情况下处理 Word 文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13159644/

相关文章:

linux - 如何在 linux 或 unix 上自动安装简单的应用程序

vba - 从第二个宏中卸载用户窗体

multithreading - 如何让delphi等待30秒然后继续

delphi - Delphi XE8 的 VersionInfo (Version.rc)

javascript - 使用 VBA 自动化关闭 JavaScript 警报

Azure 自动化作业手动运行良好,但在由 Webhook 触发时失败

c# - 如何以编程方式在word文档页眉中添加书签?

java - Office Web Apps Word 编辑

delphi - 重置有信号的可等待计时器对象句柄

Delphi - 泛型类型检查是否已创建