【问题标题】:"WARNING: JBIG2ImageReader not loaded." but [org.apache.pdfbox/jbig2-imageio "3.0.1"] exists?“警告:未加载 JBIG2ImageReader。”但是 [org.apache.pdfbox/jbig2-imageio "3.0.1"] 存在吗?
【发布时间】:2018-09-06 21:20:46
【问题描述】:

我的项目是使用哑剧 2.10.0 库 [com.novemberain/pantomime "2.10.0"] 与 Leiningen 一起构建的,它是 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"]

我错过了什么?

【问题讨论】:

  • 您是要抑制这些警告,还是要添加对 JBIG2 的支持?
  • @akond 我正在尝试添加对它的支持。

标签: clojure leiningen apache-tika


【解决方案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,它现在有了这个新模块。其中一个插件不支持此功能。

【讨论】:

  • 是的。用 project.clj 中的 [com.levigo.jbig2/levigo-jbig2-imageio "1.6.5"] 替换 [org.apache.pdfbox/jbig2-imageio "3.0.1"] 就可以了。谢谢
  • 3.0.1版本优于1.6.5版本。该版本至少有一个错误会阻止图像正确显示。当前的 tika 版本是 1.18,而不是 1.17。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-24
  • 1970-01-01
  • 2014-07-07
  • 1970-01-01
  • 1970-01-01
  • 2014-01-09
  • 1970-01-01
相关资源
最近更新 更多