我试图让Apache PDFBox创建一个PDF / A文档的示例正在运行(CreatePDFA.java)。
为此,我将示例类原样复制到一个项目模块中,该模块包含版本2.0.0-RC3中PDFBox的maven依赖项。我只更改了方法签名并使用了固定的字体,文件名和消息而不是args []。
当我尝试运行代码时,我在第107行得到一个NPE,因为它无法加载颜色配置文件(InputStream为null)当我在项目详细信息中检查包含的库时,我可以看到资源文件夹,但是它不包含预期的文件,即" pdfa / sRGB Color Space Profile.icm"。
不幸的是,google-ing问题只是提到了更多对同一个示例实现的引用,但过了一段时间我在apache.googlesource.com
上找到了所需的文件。我将文件复制到我们自己的资源目录中,然后使用这行代码:
InputStream colorProfile = CreatePdfA.class.getResourceAsStream("/pdfa/sRGB Color Space Profile.icm");
这最终阻止了NPE - 显然找到了文件 - 但是现在我得到了另一个例外,其中说:
java.lang.IllegalArgumentException: Invalid ICC Profile Data
在这里,我被困住了。我曾希望这可以开箱即用,但似乎我错过了一些东西。有什么想法吗?
答案 0 :(得分:2)
您已经自己回答了问题的一部分:将文件放入资源目录。
第二个问题可能是错误的存储库镜像或传输问题(二进制到ascii)。以下是来自示例的ICC配置文件的官方存储库URL: https://svn.apache.org/viewvc/pdfbox/trunk/examples/src/main/resources/org/apache/pdfbox/resources/pdfa/