为了账号安全,请及时绑定邮箱和手机立即绑定

如何修复“无法读取 JPEG2000 图像:未安装 Java 高级成像 (JAI) 图像 ”

如何修复“无法读取 JPEG2000 图像:未安装 Java 高级成像 (JAI) 图像 ”

幕布斯6054654 2023-06-28 15:35:18
我正在建立一个 java 项目,在其中使用 pdfBox 从 PDF 中获取图像。由于我使用 tika-app 来实现其他功能,因此我决定使用 tika-app-1.20.jar 中的 pdfBox。我之前尝试过包含 jai-imageio-core-1.3.1.jar,因为 Tika-app 已经与此 jar 捆绑在一起。我尝试单独使用 tika-app jar。抛出错误的行PDXObject object = resources.getXObject(cosName);错误的日志跟踪:org.apache.pdfbox.filter.MissingImageReaderException: Cannot read JPEG2000 image: Java Advanced Imaging (JAI) Image I/O Tools are not installed    at org.apache.pdfbox.filter.Filter.findImageReader(Filter.java:163)    at org.apache.pdfbox.filter.JPXFilter.readJPX(JPXFilter.java:115)    at org.apache.pdfbox.filter.JPXFilter.decode(JPXFilter.java:64)    at org.apache.pdfbox.cos.COSInputStream.create(COSInputStream.java:77)    at org.apache.pdfbox.cos.COSStream.createInputStream(COSStream.java:175)    at org.apache.pdfbox.cos.COSStream.createInputStream(COSStream.java:163)    at org.apache.pdfbox.pdmodel.common.PDStream.createInputStream(PDStream.java:236)    at org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject.<init>(PDImageXObject.java:140)    at org.apache.pdfbox.pdmodel.graphics.PDXObject.createXObject(PDXObject.java:70)    at org.apache.pdfbox.pdmodel.PDResources.getXObject(PDResources.java:426)但我很确定我在 tika 中有 jai-imageio-core,当我运行代码时,它是不可见的。
查看完整描述

2 回答

?
婷婷同学_

TA贡献1844条经验 获得超8个赞

实际上,我也偶然发现了这个错误,但 PDFBox 文档中提到了这一点。您需要将以下依赖项添加到您的pom.xml

<dependency>

    <groupId>com.github.jai-imageio</groupId>

    <artifactId>jai-imageio-core</artifactId>

    <version>1.4.0</version>

</dependency>


<dependency>

    <groupId>com.github.jai-imageio</groupId>

    <artifactId>jai-imageio-jpeg2000</artifactId>

    <version>1.3.0</version>

</dependency>


<!-- Optional for you ; just to avoid the same error with JBIG2 images -->

<dependency>

    <groupId>org.apache.pdfbox</groupId>

    <artifactId>jbig2-imageio</artifactId>

    <version>3.0.3</version>

</dependency>

如果您使用 Gradle :


dependencies {

    implementation 'com.github.jai-imageio:jai-imageio-core:1.4.0'

    implementation 'com.github.jai-imageio:jai-imageio-jpeg2000:1.3.0'


    // Optional for you ; just to avoid the same error with JBIG2 images

    implementation 'org.apache.pdfbox:jbig2-imageio:3.0.3'

}


查看完整回答
反对 回复 2023-06-28
?
富国沪深

TA贡献1790条经验 获得超9个赞

它恰好需要一个名为 jai-imageio-jpeg2000 的额外 jar 来支持 jp2k 图像。



查看完整回答
反对 回复 2023-06-28
  • 2 回答
  • 0 关注
  • 239 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信