64 bit version of AxInterop.AcroPDFLib library

10-11  Source: Network gathering  Views:2 

Advertisement
We have a VB.NET application which runs on DOT NET Framework 2.0. It is a windows based application which has enormous reports. Few reports are loaded using crystal report viewer and few reports are loaded using PDF Viewer. In places where we use PDF viewer, we use AxInterop.AcroPdfLib library to load the reports. We use AxAcroPDFLib.AxAcroPDF class to load the report.  All these reports are working fine on a 32 bit Operating system. But when we run the same application on a 64 bit OS, we are not able access any of our reports. All other setup remains the same except for Crystal reports Redistributable package (64 bit) which is installed on 64 bit OS. All the libraries in our application are compiled to support “Any CPU”. In order to determine the cause of the problem, we developed a dummy application, which included just the AxInterop.AcroPdfLib library to load the pdf file. While loading the report, the application threw Class not registered error. After researching on this problem, we came to know that AxInterop.AcroPdfLib library will load only on 32 bit compliers. So we re-complied the dummy application by changing the target CPU type to x86 from Any CPU, and checked the same scenario. This time we were able to view the PDF file.  We are also able to view crystal reports through crystal report viewer, so we doubt that the problem could be because of AxAcroPDFLib.AxAcroPDF library. 
we have already tried the scenario of running the application using “X86” compiler option instead of “Any CPU”. By doing so the AxInterop.AcroPdfLib.dll file will load the reports without any error. But by doing this change, reports which are viewed in crystal report viewer will stop working. This is because we are using Crystal reports Redistributable package for 64 bit OS.  Also our application is very huge with plenty of dynamic link libraries. It is not feasible for us to convert all the dlls to load on 32 bit OS. More over our primary objective of moving to a 64 bit OS was to increase the performance of the application, which will take a down turn by doing this change.
If there is no way to load reports using AxInterop.AcroPdfLib.dll on a 64 bit OS, then we will have to think of some other alternate approach. One of the approach would be drop the facility of loading reports using AxInterop.AcroPdfLib.dll, instead we should change all our reports to be viewed only on crystal reports.  This will also have few drawbacks, as we will have to maintain two different versions of files, one for 32 bit and one for 64 bit.
Following is the system configuration:  Operating System:                Windows Server 2008 Service Pack 1 Acrobat Reader version:       Acrobat reader 9.2 Name of the Dll:                    AxInterop.AcroPDFlib.dll Nature of Problem:                We are using AxInterop.AcroPDFlib.dll to load PDF files. When this dll is used on a 32 bit OS, it loads the report without throwing any error. If the same dll is used on a 64 bit OS, it throws “CLASS_NOT_REGISTERED” error. There are no other third party components/application used in the printing process. Is there any AxInterop.AcroPDFLib library which can be used on both 32 bit and 64 bit OS? Please let us know solution to this problem.
On 64 bit releases of Oracle RDBMS - there exists a 64 bit
version of OCI.
Related articles