【问题标题】:Pdfbox1.8.12 convert pdf to white page imagepdfbox1.8.12 pdf转白页图片
【发布时间】:2017-06-29 09:04:53
【问题描述】:

我有一个将 pdf 文档的第一页转换为 png 格式图像的代码。该代码看起来与大多数 pdf 文件都可以正常工作,除了这个:https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0ahUKEwiqp4KovobSAhXJ54MKHdtbD54QFggeMAA&url=http%3A%2F%2Fitrevolution.com%2Fwp-content%2Fuploads%2Ffiles%2FPhoenixProjectExcerpt.pdf&usg=AFQjCNGYt1ALVc2ramVw_oM4Qb4rQCTDmw&cad=rja 这份文件给了我第一页的白页。不知道这里出了什么问题。

PDDocument pdf = PDDocument.loadNonSeq(file, new RandomAccessFile(tmp_file, "rw"));
List<PDPage> pdPages = pdf.getDocumentCatalog().getAllPages();
PDPage page = pdPages.get(0);
BufferedImage bim = page.convertToImage(BufferedImage.TYPE_INT_RGB, 300);
ImageIOUtil.writeImage(bim, thumbnailPath + "/" + objectId +  ".png", 300);

【问题讨论】:

标签: java pdf png pdfbox


【解决方案1】:

将此依赖项添加到我的 POM 对我有帮助(使用 pdfbox 2.0.8):

<dependency>
    <groupId>com.github.jai-imageio</groupId>
    <artifactId>jai-imageio-jpeg2000</artifactId>
    <version>1.3.0</version>
</dependency>

【讨论】:

    【解决方案2】:

    当我使用 PDFBox 2.0.3 运行类似程序时(您的代码看起来像 1.8.x 代码):

    try (PDDocument pdf = PDDocument.load(file)) {
      PDFRenderer pdfRenderer = new PDFRenderer(pdf);
      BufferedImage bim = pdfRenderer.renderImageWithDPI(0, 300, ImageType.RGB);
      ImageIOUtil.writeImage(bim, outputFileName, 300);
    }
    

    我得到以下输出:

    Feb 10, 2017 10:43:33 PM org.apache.pdfbox.contentstream.PDFStreamEngine operatorException
    SEVERE: Cannot read JPEG2000 image: Java Advanced Imaging (JAI) Image I/O Tools are not installed
    

    我认为 JAI 中对 JPEG2000 格式的支持有点令人困惑(需要一个包含 SPI 的附加 jar,但很难掌握)。

    PDFBox issue 1752 中提供了有关此问题的更多详细信息,使用 JPedal 使用的解码器可能会解决此问题。我想在您的 JRE 中使用(并检测到)合适的 JPEG2000 JAI 编解码器可以识别图像。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-15
      • 2011-12-13
      • 2014-08-30
      • 2013-01-18
      • 2019-05-20
      • 2016-11-01
      • 1970-01-01
      • 2022-11-04
      相关资源
      最近更新 更多