2014-01-21 127 views
0

我试图将Abode Reader嵌入到我的win应用程序中,目标本身是从th应用程序中简单查看PDF文档,没有找到免费的渲染库(GPL不会),所以这是我的解决方案。 QAxWidget解决了大部分问题,但我也需要知道一些次要信息,例如当前页面的编号。Adob​​e Reader ActiveX + QAxWidget;获取当前页

试图排序:

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

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

所有从AxAcroPDFLib.AxAcroPDF对象的方法被称为精细和工作确定。但是那些是setter,对于获取者AcroExch.AVPageView是必需的,虽然Qt Creator或手动搜索都不需要,甚至ui->axWidget->querySubObject("something")也不会为我提供(其他?)适合它的ActiveX对象。 GetActiveDoc()可以从AcroExch.App对象中调用,至此我也无处可寻。

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

回答

1

该死的,我有点笨,在一段时间后找到了答案。

所有的“getters”,如获取当前页面的numder,总页数,当前缩放等的方法都由另一个ActiveX obj,AcroExch.AVPageView(包装在AcroExch.App中)确切地支持。

详细信息是在Adobe的参考,在这里:IACReference

但关键的一点是,ADOBE READER本身只提供AxAcroPDFLib.AxAcroPDF对象与“二传手”,仅此而已,甚至通过DDE消息。似乎完整功能仅在Adob​​e Acrobat中可用,该功能不是免费的,并且是以通常的商业方式许可/购买的。

因此,就像Adobe一样,您可以使用有限的Reader OLE方法或购买Acrobat。

相关问题