【发布时间】:2021-01-15 04:16:00
【问题描述】:
我正在尝试使用 PDFBox 提取 PDF 文件中的所有图像。它适用于包含 jpeg 和 png 图像的 pdf。但它不适用于 OpenJPEG2000 图像。我收到以下异常: 得到以下错误:
org.apache.pdfbox.contentstream.PDFStreamEngine operatorException
SEVERE: Cannot read JPEG2000 image: Java Advanced Imaging (JAI) Image I/O Tools are not installed
在所有版本的 PDFBox 中,都会出现同样的异常。也尝试使用独立的 jar。
我也在 pom.xml 中包含了必要的依赖项。
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>jbig2-imageio</artifactId>
</dependency>
<!-- For legal reasons (incompatible license), these two dependencies
are to be used only in the tests and may not be distributed. -->
<dependency>
<groupId>com.github.jai-imageio</groupId>
<artifactId>jai-imageio-core</artifactId>
</dependency>
<dependency>
<groupId>com.github.jai-imageio</groupId>
<artifactId>jai-imageio-jpeg2000</artifactId>
</dependency>
我们将不胜感激。
【问题讨论】:
-
为什么是测试范围?
-
或者换句话说,异常是否也发生在测试中,存在这些 jai 依赖项?
-
谢谢。删除了测试范围。它现在工作。我也在问题中进行了修改。
-
我现在面临另一个问题。导出 jar 并尝试在 Windows 中使用命令提示符。我再次遇到同样的异常:org.apache.pdfbox.contentstream.PDFStreamEngine operatorException 严重:无法读取 JPEG2000 图像:未安装 Java 高级成像 (JAI) 图像 I/O 工具
-
这是一个不同的问题。解决方案:使用类路径并像这样调用: "java -cp "pdfbox-app-2.0.21.jar;lib/*" org.apache.pdfbox.tools.PDFBox ExtractImages
" 。复制 lib 子目录中多余的 jar 文件。
标签: java pdf pdfbox image-extraction