“警告:未加载JBIG2ImageReader。”但是[org.apache.pdfbox / jbig2-imageio“ 3.0.1”]存在吗?

时间:2018-09-06 21:20:46

标签: clojure leiningen apache-tika

我的项目是使用Leiningen使用哑剧2.10.0库[com.novemberain/pantomime "2.10.0"]构建的,该库是Apache Tika的Clojure包装器。我在https://pdfbox.apache.org/2.0/dependencies.html浏览了一些文档,以尝试消除org.apache.tika.config.InitializableProblemHandler发出的警告,但是似乎仍然存在。

Sep 06, 2018 1:59:25 PM org.apache.tika.config.InitializableProblemHandler$3 handleInitializableProblem
WARNING: JBIG2ImageReader not loaded. jbig2 files will be ignored
See https://pdfbox.apache.org/2.0/dependencies.html#jai-image-io
for optional dependencies.

我正在努力了解要添加到project.clj依赖项中的其他内容,以便使此警告消失。为什么[org.apache.pdfbox/jbig2-imageio "3.0.1"]不满足依赖关系。

我project.clj的:dependencies相关部分是:

[org.xerial/sqlite-jdbc "3.23.1"]
[org.apache.pdfbox/jbig2-imageio "3.0.1"]
[com.github.jai-imageio/jai-imageio-core "1.4.0"]
[com.github.jai-imageio/jai-imageio-jpeg2000 "1.3.0"]
[com.novemberain/pantomime "2.10.0"]

我想念什么?

1 个答案:

答案 0 :(得分:1)

要禁用这些警告,您需要在Tika配置文件中禁止显示它们。

tika.xml:

<?xml version="1.0" encoding="UTF-8"?>
<properties>
    <service-loader initializableProblemHandler="ignore"/>
</properties>

,然后在您的代码中使用此配置文件:

(let [handler  (BodyContentHandler.)
          config   (TikaConfig. (FileInputStream. "tika.xml"))
          parser   (AutoDetectParser. config)
          metadata (Metadata.)
          stream   (FileInputStream. "resources/memory.pdf")]       
     (.parse parser stream handler metadata)    
     (prn (str handler)))

要启用对JBIG和所有内容的支持,您应该参考tika-parsers-1.17.jar!/META-INF/maven/org.apache.tika/tika-parsers/pom.xml,其中包含对受支持插件及其版本的所有引用。将这些插件添加到您的依赖中。

对于[com.novemberain/pantomime "2.10.0"],您应该选择

[com.levigo.jbig2/levigo-jbig2-imageio "1.6.5"]
[com.github.jai-imageio/jai-imageio-core "1.3.1"]
[com.github.jai-imageio/jai-imageio-jpeg2000 "1.3.0"]

它适用于Java 1.8,但我认为它不适用于Java 1.10,因为Java 1.10现在具有此新模块。这些插件之一不支持此功能。