Com Adobe Reader ActiveX+;QAxWidget;获取当前页面

Com Adobe Reader ActiveX+;QAxWidget;获取当前页面,com,activex,ole,adobe-reader,activeqt,Com,Activex,Ole,Adobe Reader,Activeqt,我正在尝试将Abode Reader嵌入到我的win应用程序中,目标本身就是从th应用程序简单地查看PDF文档,找不到免费的渲染库(GPL不行),所以这就是我的解决方案。QAxWidget解决了大部分问题,但我还需要知道一些次要信息,比如当前页面的编号 试着说: ui->axWidget-> dynamicCall("LoadFile(const QString &)", "C:/sample.pdf"); // works fine 似乎有一个很好的参考: AxAcroP

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

试着说:

ui->axWidget-> dynamicCall("LoadFile(const QString &)", "C:/sample.pdf"); // works fine
似乎有一个很好的参考:

AxAcroPDFLib.AxAcroPDF
对象中的所有方法都被称为fine并正常工作。但是这些都是setter,用于getters
AcroExch.AVPageView
是必需的,尽管既不是Qt创建者,也不是手动搜索,甚至不是
ui->axWidget->querySubObject(“某物”)
为它提供(其他?)合适的ActiveX对象
GetActiveDoc()
可以从
AcroExch.App
object调用,我也无处可去


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

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

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

有关详细信息,请参见Adobe参考资料:

但关键的一点是,Adobe Reader本身仅提供带有“setters”的AxAcroPDFLib.AxAcroPDF对象,而仅此而已,即使是通过DDE消息。似乎完整功能仅在Adobe Acrobat中可用,它不是免费的,并且是以通常的商业方式许可/购买的

因此,正如Adobe所拥有的,您可以使用有限的Reader OLE方法或purchace Acrobat