【问题标题】:Can't get PDFBox CreatePDFA example to work - Color profile not found无法使用 PDFBox CreatePDFA 示例 - 找不到颜色配置文件
【发布时间】:2016-02-11 17:25:24
【问题描述】:

我正在尝试获取使用 Apache PDFBox 创建 PDF/A 文档的示例 (CreatePDFA.java)。

为此,我将示例类原样复制到一个项目模块中,该模块在 2.0.0-RC3 版本中包含对 PDFBox 的 maven 依赖项。我只更改了方法签名并使用了固定的字体、文件名和消息而不是 args[]。

尝试运行代码时,我在第 107 行得到 NPE,因为它无法加载颜色配置文件(InputStream 为空)当我检查项目详细信息中包含的库时,我可以看到资源文件夹,但确实如此不包含预期的文件,即“pdfa/sRGB Color Space Profile.icm”。

不幸的是,谷歌搜索这个问题只找到了更多对始终相同的示例实现的引用,但过了一会儿我在apache.googlesource.com 上发现了似乎需要的文件

我将文件复制到我们自己的资源目录,然后改用这行代码:

InputStream colorProfile = CreatePdfA.class.getResourceAsStream("/pdfa/sRGB Color Space Profile.icm");

这终于停止了 NPE - 该文件显然已找到 - 但现在我得到另一个异常:

java.lang.IllegalArgumentException: Invalid ICC Profile Data

在这里,我被困住了。我曾希望这可以开箱即用,但似乎我错过了一些东西。有什么想法吗?

【问题讨论】:

  • 将其放入您自己的资源目录中是正确的。但不要使用谷歌下载,使用pdfbox网站上源代码下载的文件
  • 如果您不想下载源代码,请查看 icc 配置文件:svn.apache.org/viewvc/pdfbox/trunk/examples/src/main/resources/…
  • 糟糕,我现在看到您的链接指向 svn 镜像。然而就在几天前,我能够创建一个 servlet,我只是将文件复制到我的资源目录中。我想知道是否发生了这样的事情,即 icc 配置文件被转换为 ascii。
  • 刚刚下载了你链接的文件,它就可以工作了。也许发布答案以便我接受? :)
  • 完成。很高兴听到它奏效了。

标签: pdfbox color-profile


【解决方案1】:

您自己已经回答了部分问题:将文件放入您的资源目录。

第二个问题可能是错误的存储库镜像或传输问题(二进制到 ascii)。这是示例中带有 ICC 配置文件的官方存储库 URL: https://svn.apache.org/viewvc/pdfbox/trunk/examples/src/main/resources/org/apache/pdfbox/resources/pdfa/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-27
    • 1970-01-01
    • 2015-02-19
    • 2017-03-24
    • 1970-01-01
    • 2017-02-16
    • 2016-09-11
    相关资源
    最近更新 更多