2014-01-21 4 views
0

Abode Reader를 내 win 앱에 임베드하려고합니다. 대상 자체가 간단한 응용 프로그램에서 PDF 문서를 보는 것입니다. 무료 렌더링 라이브러리 (GPL이 지원되지 않음)가 없기 때문에 내 솔루션입니다. QAxWidget은 대부분의 문제를 해결했지만 현재 페이지 번호와 같은 사소한 정보를 알아야합니다.Adobe Reader ActiveX + QAxWidget; 현재 페이지를 얻는 중

종류의 시도 : AxAcroPDFLib.AxAcroPDF 개체에서 Interapplication Communication API Reference - Adobe

모든 방법을 잘라는 확인을 작동됩니다

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

좋은 참조가있어 보인다. Qt Creator 나 수동 검색은 아니지만 ui->axWidget->querySubObject("something")도 나에게 적합한 (적절한?) ActiveX 객체를 제공하지는 않지만 getter는 AcroExch.AVPageView이 필요합니다. GetActiveDoc()AcroExch.App 개체에서 호출 할 수 있습니다. 나 또한 얻을 곳이 없습니다.

질문 : 가능하면 AciveX를 통해 현재 페이지 번호를 얻는 것이 어떨까요?

답변

1

젠장, 나는 조금 바보 같았다. 잠시 후에 답을 찾았다.

다른 모든 ActiveX obj, AcroExch.AVPageView (현재 AcroExch.App로 둘러싸여 있음)에서 현재 페이지, 총 페이지 수, 현재 확대/축소 등을 얻는 방법과 같은 모든 "getters"가 정확합니다. . IACReference

그러나 중요한 점은 어도비 리더 자체도 DDE 메시지를 통해, "세터"아무것도 더 만 AxAcroPDFLib.AxAcroPDF 객체를 제공하는 것입니다 :

자세한 정보를 원하시면 여기, 어도비 참조입니다. 모든 기능은 Adobe Acrobat으로 만 제공되며 무료는 아니며 일반 상업용으로 라이센스/구매 한 것으로 보입니다.

따라서 Adobe에서는 제한된 Reader OLE 메서드를 사용하거나 Acrobat을 구입할 수 있습니다.