PDFBox jpeg2000渲染例如12vemonkeys -jpeg,以避免专利问题



我得到了一个pdf文件,我打开PDFBox(版本2.0.20,但不应该是版本相关)。该文件的页面实际上是JPEG2000图像。

首先我得到了众所周知的错误:无法读取JPEG2000图像:Java高级成像(JAI)图像I/O工具未安装。

我在POM中添加了JAI核心工具和相应的jpeg2000插件:

<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> 

一切都很好!

但是:互联网上说,如果您使用jai-imageio-jpeg2000而不付费,则侵犯了专利。

因此我的问题是,我可以让PDFBox使用不同的模块吗?我知道twelve emonkeys是一个不错的选择,我读了一些测试的帖子。但是我没有发现howto,如何让如twelvemonkeys pdfbox开关。

我从POM中删除了上面的内容,并添加了十二个猴子,但这不起作用(再次从上面得到错误消息)

<dependency>
<groupId>com.twelvemonkeys.imageio</groupId>
<artifactId>imageio-jpeg</artifactId>
<version>3.8.2</version>
</dependency>

所以最后我使用了JDeli库。这是一家商业图书馆,在撰写本文时,您需要每年支付800美元或一次性支付4000美元。但是基于JJ2000代码的专利问题,你可能会遇到更大的问题,我决定在我们的项目中使用它。

钱是一个话题,但我的jpeg2000问题与pdfbox消失吗?是的!

我按照网页上的说明(https://support.idrsolutions.com/jdeli/tutorials/add-jdeli-as-a-maven-dependency):

)我下载试用自由,添加到我的maven存档并添加这个pom.xml:

<dependency>
<groupId>com.idrsolutions</groupId>
<artifactId>jdeli</artifactId>
<version>1.0</version>
</dependency>

当我想使用这个产品作为ai插件时,我也检查了这个插件的git项目:https://github.com/idrsolutions/JDeli_ImageIO_Plugin

结账后,我做了mvn安装和插件是在我的mvn的repo。我还添加了插件作为依赖到我的pom.xml:

<dependency>
<groupId>com.idrsolutions</groupId>
<artifactId>JDeli_ImageIO_Plugin</artifactId>
<version>1.0</version>
</dependency>

从这里我的pdf与jpeg2000图像里面可以加载pdfbox如预期的。

所以这不会回答我的问题,如何使用12vemonkeys读取pdf与jpeg2000在pdfbox内,因为这是不可能的(见上文),但它提供了一个替代方案,至少对我来说,只要你能接受支付库。

最新更新