1

我正在使用 Adob​​e Acrobat 的 COM 接口来处理托管在我的应用程序提供的窗口中的 PDF 文档的内容。

Adobe 似乎在 2006 年左右冻结了 COM 接口的开发。尽管 Acrobat 的类型库提供对一组相当有限的功能的访问,但 COM 接口不提供对 Acrobat 应用程序菜单 + 工具栏中可用的许多功能的直接访问。这些天来,他们希望您通过他们的 JavaScript API 工作。

Acrobat 类型库使您能够访问与特定文档关联的 JavaScript 对象。例如,以下内容将文档的第一页上下颠倒:

[...]
var
  Doc : CAcroPDDoc; // interface Acrobat document
  vJS : OleVariant; // access to JavaScript object  
begin

  Doc := CoAcroPDDoc.Create; 
  Doc.Open(AFileName);
  try
    vJS := Doc.GetJSObject;
    try
      vJS.SetPageRotations(0, 0, 180);
    finally
      VarClear(vJS);
    end;
  finally
    Doc := Nil;
  end; 

end;

在我想做的只是调用 Acrobat JavaScript API 中的一个对象的方法的情况下,这很好用。我的问题是:如何将我的应用程序代码与其中一些对象提供的事件接口?例如,当用户单击文档中的书签时,甚至会发生 JS - 我将如何为类似的事情提供事件处理程序?

我知道如何实现出站接口并通过 ConnectionPointContainer/FindConnectionPoint 将其连接到 COM 对象。但是我不知道如何连接到我正在访问的对象上的 JS 事件(通过上面的 GetJSObject 之类的调用),该对象位于 COM 对象接口的另一侧。所以这不是我可以“显示我的代码到目前为止”的情况,因为我不知道从哪里开始。

4

0 回答 0