2010-02-22 87 views
1

我喜歡使用PDFBox在我的.net項目中生成PDF高亮文件。 PDFBox的說,它可以在.NET通過IKVM http://www.pdfbox.org/userguide/dot_net.html如何在使用IKVM的.net/C#環境中使用PDFBox 1.0

可以使用,但運行ikvmc(最新版本)生成的DLL上PDFBOX.1.0.0.jar產生一大堆NoClassDefFound警告。

我應該如何解決這個問題,以及我需要在我的項目中包含哪些其他DLL?看起來好像文件名已經從我已經閱讀的舊文檔/文章中改變了。

在此先感謝。

回答

0

這取決於您正在使用的PDFBox的版本。最新的發佈版本(0.7.3)使用IKVM 0.30.00。還有其他版本的IKVM,並非全部都是向後兼容的。還有另一個測試版PDFBox,我相信它使用了更新版本的IKVM。

我很確定每個版本化的PdfBox所需的IKVM庫都在發佈zip文件中。請確保使用該版本附帶的版本,而不是最新版本的IKVM,因爲它們可能不兼容。

+0

感謝尼克,看起來他們還沒有更新sourceforge上爲最新的版本中,有一個1.0版本,但sourceforge上列出.7.3爲最新。 http://pdfbox.apache.org/download.html#pdfbox 我的問題是,1.0不再包含IKVM DLL,並使用IKVM'從頭'來生成它們似乎並不能正常工作。 我一直希望使用1.0,因爲這是一個生產系統,但我會嘗試.7.3 – ELG 2010-02-23 16:35:02

+0

@Evan - 我現在在生產系統中使用0.7.3,至少對於我使用它的情況,正好。你的旅費可能會改變。 – Nick 2010-02-23 16:41:53

1

我剛想到了這個問題,同時試圖找出自己如何讓PDFBox 1.0工作。看起來NoClassFound錯誤正在生成,因爲它找不到引用的jar(位於標題爲「external」的文件夾中)。以下是我終於能夠得到它的工作:

  1. 從IKVM 0.30.00使用二進制
  2. 把PDFBOX-1.0.0的jar文件中的「外部」文件夾(方便的引用)
  3. 在命令行中,執行lkvmc.exe -target:library -out:「[Output Path] \ netpdfbox.dll」「[PDFBox Path] \ *。jar」 < - * .jar告訴IKVM運行include所有jar文件作爲一個大的程序集

您應該能夠包含outputte d .dll在你的C#代碼中。我能夠沒有任何問題,執行下面的代碼:

PDDocument doc = PDDocument.load("test.pdf"); 
string output = new PDFTextStripper().getText(doc);