I have installed the latest Adobe Reader on my PC (Adobe Acrobat Reader DC).
Now I would like to use AxAcroPDFLib in C# to open and show a PDF file in my Windows Forms application.
The problem is, if I am trying to use the LoadFile()
method, then it says that this method is not exist.
I loaded the Adobe Acrobat 7.0 Browser Control Type Library 1.0 COM reference into my project, and I added the Adobe PDF Reader COM Component to my toolbox (Tools / Choose Toolbox Items... / COM Components).
What is wrong? How should I open a PDF file with this library? I found a lot of tutorials on the internet, and everybody tells that I have to use the LoadFile method... Please help, thanks!
This is no longer supported in Adobe Reader DC. Install Adobe Reader v11 and it will work.
Just in case anyone still needs a solution.
I'm using Adobe Acrobat DC and actually have AxAcroPDF.LoadFile()
method. However, it doesn't work i.e. nothing happenns :/
So, I used AxAcroPDF.src
property with url for local file
axAcroPdf1.src = "file:///c:/my.pdf"
Hope it helps
This is still possible. You just need to invoke the method differently.
public void LoadFile(string path)
{
this.GetOcx().GetType().InvokeMember("LoadFile", BindingFlags.InvokeMethod |
BindingFlags.OptionalParamBinding, null, this.GetOcx(), new object[1] { path });
}
See this post for details.
Cast object representing your control (of type AxAcroPDFLib.AxAcroPDF
) to AcroPDFLib.IAcroAXDocShim
interface:
var acro = (AcroPDFLib.IAcroAXDocShim)axAcroPDFControl.GetOcx();
acro.LoadFile(fileName);
It appears that all useful methods are now available under this interface. Works if Adobe Reader DC is installed.
A little extension can be defined:
public static class AcroExtensions
{
public static AcroPDFLib.IAcroAXDocShim AsAcroPDF(this AxAcroPDFLib.AxAcroPDF source)
{
return (AcroPDFLib.IAcroAXDocShim)source.GetOcx();
}
}
Then you can write:
axAcroPDFControl.AsAcroPDF().LoadFile(fileName)