如何以编程方式知道Adobe Reader完成了加载文件

How to know programmatically that Adobe Reader finished loading a file?

本文关键字:加载 文件 Reader Adobe 编程 方式知      更新时间:2023-10-16

我正在编写一个加载PDF文件并获取有关Adobe读取器过程的信息。

我的问题是,我不知道Adobe读取器何时完成加载文件。目前,我是作为调试器连接到该过程的,因此该过程显然运行速度较慢,我不想仅仅入睡()几秒钟。我不在乎该解决方案是在C 还是C#中,因为我可以向我的程序发出事件的信号。

我正在寻找针对Adobe阅读器和希望其他Adobe阅读器的特定解决方案(例如Acrobat Reader DC)。

我尝试了一些解决方案:

  • 我试图在C 中编写一个Adobe插件,该插件可以在Adobe完成加载时提高事件。这是一个简单的解决方案,但问题是Adobe希望所有插件都可以由它们签名为Adobe读取器,这可能会花费很多。这就是为什么我放下这个主意。
  • 我尝试根据手册使用IAC(相互应用程序交流),但它对我不起作用,老实说,它写得很差。他们正在公开com界面,但我似乎无法使其工作。

对我的解决方案甚至是我可以每秒调用一次的didfinishloading()函数,并且一旦发生事件,我就可以提出一个。

我已经挣扎了几天,非常感谢任何帮助。

谢谢!

因为pdf是随机访问,所以整个文件可能永远不会加载,直到您将其强加到。您可以通过IAC将一些JavaScript注入文件中,这将导致整个文件被读取。诸如" this.syncannotscan()"之类的东西可以保证方法将在方法返回时扫描所有注释...即使没有。这意味着每个页面都需要加载,甚至可以运行。这不是理想的,但确实有效。