我正在爲朋友創建電子書。他有word(docx)中的內容,所以我有幾個問題。我之前就如何解決這個問題創建了一個線程,最好的反應是創建PDF。這樣做的要點是我們可以插入文本框,鏈接和目錄。在c#應用程序中託管PDF
現在我想知道是否可以在我的應用程序中託管PDF。我想基本上製作一個「Adobe Reader」。有沒有這樣的圖書館?我可以使用安裝的COM/dll來做到這一點嗎?
之所以這樣做,是因爲我在創建應用程序或「報告卡」或「書籤」功能時,就像是「測驗」部分。
謝謝你們。
我正在爲朋友創建電子書。他有word(docx)中的內容,所以我有幾個問題。我之前就如何解決這個問題創建了一個線程,最好的反應是創建PDF。這樣做的要點是我們可以插入文本框,鏈接和目錄。在c#應用程序中託管PDF
現在我想知道是否可以在我的應用程序中託管PDF。我想基本上製作一個「Adobe Reader」。有沒有這樣的圖書館?我可以使用安裝的COM/dll來做到這一點嗎?
之所以這樣做,是因爲我在創建應用程序或「報告卡」或「書籤」功能時,就像是「測驗」部分。
謝謝你們。
製作 a 定製PDF瀏覽器控制可能是一項極具挑戰性的任務。您可以在您的應用程序中使用真實的Adobe Reader,因爲它提供的COM控件可以託管在任何Windows應用程序中。以下是具體步驟:
操縱它:
axAcroPDF1.LoadFile("mypdf.pdf");
axAcroPDF1.Show();
我知道這已被問過,但我不記得在哪裏。接受的答案是沿着這些路線的東西:
這將是一個非常糟糕的主意,以創建自己的PDF閱讀器,這是因爲:
找到一種方法可以使用他們已經設計並免費分發的Acrobat reader。
這很容易做到。您只需使用WebBrowser控件(假設這是WinForms)並將DocumentSource設置爲PDF文件即可。 WebBrowser控件將自動使用客戶端PC上已安裝的任何pdf閱讀器,就像Internet Explorer一樣。
我有很好的經驗,工作的Aspose庫。它們價格合理,可爲您節省大量時間。
您可以通過您的機器上安裝的ActiveX組件以及閱讀器在您的應用程序中嵌入Adobe Reader。您可以從COM Components選項卡將它添加到VS Toolbox。任何安裝了Abobe Reader的用戶都可以使用您的應用查看PDF文檔。 請注意,如果沒有安裝Adobe Reader,您的程序將無法工作,或者您需要以某種方式爲應用程序提供lib。 如果你想要一些不需要Adobe Reader的東西,那麼你可能想看看iText#。
缺點是您的應用程序無法在沒有安裝Adobe Reader的機器上工作。我猜OP只是爲朋友建立一些東西,但如果我只是爲了使用其他應用程序而必須安裝adobe reader,我會很不高興...... – 2010-07-18 20:08:49
Acutally,朋友是一家大公司的承包商。該公司需要將其分發給他們的客戶,並且他們不能將任何東西發送出去。 – masfenix 2010-07-18 20:20:56
如果沒有Adobe的許可,公司甚至可以分發adobe庫(正常redist許可證只允許重新分發完整的安裝程序:http://www.adobe.com/products/reader/rdr_distribution1.html)。我希望狐狸有類似的要求 – 2010-07-18 20:38:58
使用Adobe ActiveX/com組件的一個潛在問題是用戶必須安裝Adobe Reader才能正常工作(我認爲您不能僅允許和/或僅允許重新分發activeX控件,並且不會我不想強迫我的用戶安裝Adobe Reader)。因此,對於更嚴肅的工作,我會嘗試使用可以隨代碼一起分發的Pdf庫,例如爲開放源代碼庫http://ccxvii.net/mupdf/編寫一個(可能非常小的)P/Invoke包裝器,或者如果您可以/想要它使用一些商業圖書館。
使用web瀏覽器控件的一個問題是,你必須小心地測試如果在IE中禁用PDF作爲嵌入的目標用戶會發生什麼情況。它可能會發生,而不是嵌入你得到一個外部Adobe閱讀器(或任何註冊爲PDF處理程序)彈出!有可能是一種解決方法,但我之前已經被它咬過(導致其中一個「在我的機器上工作」的問題)
這個問題是,庫不支持嵌入鏈接或文本框等的PDF文件,或者它? – masfenix 2010-07-18 20:19:47
那麼,這將取決於圖書館:)我不確定mupdf是誠實的,但是IIRC sumatrapdf基於mupdf和sumatra,至少支持嵌入式鏈接,ToC和書籤。 Tyler Jensen提到Aspose,我想這會支持更高級的pdf功能,但我從來沒有用過它,而且它有點貴...對於mupdf,我想你可以簡單地嘗試看看sumatrapdf是否支持你需要的功能,然後調查一個P/Invoke層爲.net做了多少努力。 – 2010-07-18 20:26:19
哦,當然mupdf是GNU GPL3(「有關商業許可請聯繫[email protected]。」)。所以你一定要確保你遵守許可條款 – 2010-07-18 20:32:57
我會投票,因爲它會工作..雖然我認爲使用WebBrowser控制更簡單。 – David 2010-07-18 19:55:52
@David,而'WebBrowser'的方法確實更容易實現,與Adobe組件相比,您可以輕鬆控制PDF,使您可以導航,打印... – 2010-07-18 20:01:17
太棒了!但是我可以分發正確的庫嗎?安裝人員應該完成這項工作。如何使用像foxit這樣的輕量級pdf閱讀器,它可以被類似地使用嗎? – masfenix 2010-07-18 20:10:39