2010-02-22 83 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);