2015-04-29 459 views
1

我在我的電腦上安裝了最新的Adobe Reader(Adobe Acrobat Reader DC)。 現在我想在C#中使用AxAcroPDFLib在我的Windows窗體應用程序中打開並顯示一個PDF文件。試圖用AxAcroPDFLib打開PDF

問題是,如果我試圖使用LoadFile()方法,那麼它說這種方法不存在。

我裝了使用Adobe Acrobat 7.0瀏覽器控件的類型庫1.0 COM引用到我的項目,我添加了的Adobe PDF閱讀器 COM組件到我的工具箱(工具/選擇工具箱項.../COM組件) 。

enter image description here

有什麼不對?我應該如何用這個庫打開一個PDF文件?我在互聯網上發現了很多教程,每個人都告訴我必須使用LoadFile方法...請幫助,謝謝!

+1

你嘗試使用的方法,看看是否你有編譯器錯誤或沒有? (忽略它不顯示在intellisense中的事實)它收到一個字符串參數,該參數應包含pdf文件的路徑 –

+0

是的,存在編譯器錯誤:「錯誤'AxAcroPDFLib.AxAcroPDF'不包含定義爲'LoadFile',並且沒有找到接受類型'AxAcroPDFLib.AxAcroPDF'的第一個參數的擴展方法'LoadFile'(可以找到缺少使用指令或程序集引用嗎?「 –

+0

您的應用程序使用哪個版本的.Net框架?嘗試更改.Net框架的版本,可能是AxAcroPDFLib LoadFile與.Net框架的某個版本不兼容。 –

回答

3

Adob​​e Reader DC不再支持此功能。安裝Adobe Reader v11,它會工作。

1

這仍然是可能的。你只需要以不同的方式調用該方法。

public void LoadFile(string path) 
{ 
    this.GetOcx().GetType().InvokeMember("LoadFile", BindingFlags.InvokeMethod | 
     BindingFlags.OptionalParamBinding, null, this.GetOcx(), new object[1] { path }); 
} 

看到代表你的控制(AxAcroPDFLib.AxAcroPDF型)this post for details.

+0

像這樣使用System.Reflection實際上適用於我。爲什麼有些人不喜歡它? – gridtrak

+0

我認爲downvotes是因爲我原來的答案只是鏈接到源文章,而不是完整的代碼。 – Scott

1

演員對象AcroPDFLib.IAcroAXDocShim接口:

var acro = (AcroPDFLib.IAcroAXDocShim)axAcroPDFControl.GetOcx(); 
acro.LoadFile(fileName); 

看來,一切有用的方法現在是這個界面下提供。如果安裝了Adobe Reader DC,則適用。

一點點擴展可以定義:

​​

然後,你可以寫:

axAcroPDFControl.AsAcroPDF().LoadFile(fileName) 
1

萬一有人仍然需要一個解決方案。 我使用的是Adobe Acrobat DC,實際上有AxAcroPDF.LoadFile()方法。但是,這是行不通的,即沒有happenns:/

所以,我用AxAcroPDF.src財產網址爲本地文件

axAcroPdf1.src = "file:///c:/my.pdf" 

希望它可以幫助