我在我的电脑上安装了最新的Adobe Reader(Adobe Acrobat Reader DC)。 现在我想在C#中使用AxAcroPDFLib在我的Windows窗体应用程序中打开并显示PDF文件。
问题是,如果我尝试使用LoadFile()
方法,则表示此方法不存在。
我将 Adobe Acrobat 7.0浏览器控件类型库1.0 COM引用加载到我的项目中,并将 Adobe PDF Reader COM组件添加到我的工具箱中(工具/选择工具箱项目...... / COM组件)。
有什么问题?我该如何用这个库打开PDF文件?我在互联网上找到了很多教程,每个人都告诉我必须使用LoadFile方法...请帮助,谢谢!
答案 0 :(得分:3)
Adobe Reader DC不再支持此功能。安装Adobe Reader v11,它将起作用。
答案 1 :(得分:2)
以防任何人仍然需要解决方案。
我使用的是Adobe Acrobat DC,实际上有AxAcroPDF.src
方法。但是,它没有工作,即没有任何事情发生:/
所以,我使用axAcroPdf1.src = "file:///c:/my.pdf"
属性和url作为本地文件
--jar
希望有所帮助
答案 2 :(得分:1)
这仍然是可能的。您只需要以不同方式调用该方法。
public void LoadFile(string path)
{
this.GetOcx().GetType().InvokeMember("LoadFile", BindingFlags.InvokeMethod |
BindingFlags.OptionalParamBinding, null, this.GetOcx(), new object[1] { path });
}
答案 3 :(得分:1)
将表示您的控件(类型为AxAcroPDFLib.AxAcroPDF
)的对象转换为AcroPDFLib.IAcroAXDocShim
接口:
var acro = (AcroPDFLib.IAcroAXDocShim)axAcroPDFControl.GetOcx();
acro.LoadFile(fileName);
现在可以在此界面下使用所有有用的方法。如果安装了Adobe Reader DC,则可以正常工作。
可以定义一点扩展名:
public static class AcroExtensions
{
public static AcroPDFLib.IAcroAXDocShim AsAcroPDF(this AxAcroPDFLib.AxAcroPDF source)
{
return (AcroPDFLib.IAcroAXDocShim)source.GetOcx();
}
}
然后你可以写:
axAcroPDFControl.AsAcroPDF().LoadFile(fileName)