【问题标题】:How to use PDFBox 1.0 in .net / C# environment using IKVM如何使用 IKVM 在 .net / C# 环境中使用 PDFBox 1.0
【发布时间】:2011-01-19 20:41:19
【问题描述】:

我喜欢使用 PDFBox 在我的 .net 项目中生成 PDF 高亮文件。 PDFBox 声明它可以通过 IKVM 在 .net 中使用 http://www.pdfbox.org/userguide/dot_net.html

但运行 ikvmc(最新版本)以在 PDFBOX.1.0.0.jar 上生成 DLL 会生成大量 NoClassDefFound 警告。

我应该如何解决这个问题,我需要在我的项目中包含哪些其他 DLL?似乎文件名与我读过的关于此事的旧文档/文章有所不同。

提前致谢。

【问题讨论】:

    标签: .net pdf highlight ikvm


    【解决方案1】:

    我在尝试自己弄清楚如何让 PDFBox 1.0 正常工作时遇到了这个问题。似乎正在生成 NoClassFound 错误,因为它找不到引用的 jars(位于名为“external”的文件夹中)。以下是我最终能够让它工作的方法:

    1. 使用来自 IKVM 0.30.00 的二进制文件
    2. 将pdfbox-1.0.0的jar文件放到“external”文件夹下(更方便参考)
    3. 在命令行中,执行lkvmc.exe -target:library -out:"[Output Path]\netpdfbox.dll" "[PDFBox Path]\*.jar"

    您应该能够在您的 C# 代码中包含输出的 .dll。我能够毫无问题地执行以下代码:

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

    【讨论】:

      【解决方案2】:

      这取决于您使用的 PDFBox 版本。最新的 release 版本 (0.7.3) 使用 IKVM 0.30.00。还有其他版本的 IKVM,但并非所有版本都向后兼容。还有另一个测试版 PDFBox,我相信它使用了更新版本的 IKVM。

      我很确定每个版本的 PdfBox 所需的 IKVM 库都在发布 zip 文件中。请确保您使用的是发行版附带的版本,而不是最新版本的 IKVM,因为它们可能不兼容。

      【讨论】:

      • 谢谢尼克,看起来他们还没有将 sourceforge 更新到最新版本,有一个 1.0 版本,但 sourceforge 将 .7.3 列为最新版本。 pdfbox.apache.org/download.html#pdfbox 我的问题是 1.0 不再包含 IKVM DLL,并且使用 IKVM“从头开始”生成它们似乎无法正常工作。我希望使用 1.0,因为这是用于生产系统,但我会尝试 .7.3
      • @Evan - 我现在在生产系统中使用 0.7.3,至少对于我使用它的用途来说,它工作得很好。您的里程可能会有所不同。
      猜你喜欢
      • 2011-03-28
      • 1970-01-01
      • 2023-01-25
      • 1970-01-01
      • 2017-05-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-30
      • 1970-01-01
      相关资源
      最近更新 更多