0

我正在尝试将 Abode Reader 嵌入到我的 win 应用程序中,目标本身是从应用程序中简单查看 PDF 文档,没有找到免费的渲染库(GPL 不会做),所以这就是我的解决方案。QAxWidget 解决了大部分问题,但我还需要了解一些次要信息,例如当前页面的编号。

尝试排序:

ui->axWidget-> dynamicCall("LoadFile(const QString &)", "C:/sample.pdf"); // works fine

似乎有一个很好的参考:Interapplication Communication API Reference - Adob​​e

对象中的所有方法AxAcroPDFLib.AxAcroPDF都可以正常调用并且可以正常工作。但这些都是 setter,因为 getterAcroExch.AVPageView是必需的,尽管 Qt Creator 和手动搜索都没有ui->axWidget->querySubObject("something")为我(其他?)提供合适的 ActiveX 对象。GetActiveDoc()可以从AcroExch.App对象调用,我也无处可去。

问题是:如果可能的话,如何通过 AciveX 获取当前页码?

4

1 回答 1

1

该死的,我有点笨,过了一会儿才找到答案。

确切地说,其他 ActiveX obj AcroExch.AVPageView(包装在 AcroExch.App 中)支持所有“getter”,例如获取当前页面数、页面总数、当前缩放等的方法。

详细信息在 Adob​​e 参考中,这里:IACReference

但关键是Adob​​e Reader本身仅提供带有“设置器”的 AxAcroPDFLib.AxAcroPDF 对象,仅此而已,即使通过 DDE 消息也是如此。似乎全部功能仅在Adob​​e Acrobat中可用,它不是免费的,并且以通常的商业方式获得许可/购买。

因此,正如 Adob​​e 所拥有的那样,您可以使用有限的 Reader OLE 方法或购买 Acrobat。

于 2014-01-24T07:57:15.957 回答