PDFBox Рендеринг Jpeg2000 и JBIG2 - PullRequest
0 голосов
/ 07 мая 2020

Я хочу преобразовать каждую страницу pdf в изображение (например, снимок экрана), а затем загрузить это изображение в службу хранения.

  private void getImageBytes(PDDocument document, int pageIndex, int dpi, ConcurrentHashMap<String, byte[]> imgsToUpload, String imgKey) throws IOException {


    PDFRenderer pdfRenderer = new PDFRenderer(document);
    BufferedImage bim = pdfRenderer.renderImageWithDPI(pageIndex, dpi, ImageType.RGB);
    final ByteArrayOutputStream os = new ByteArrayOutputStream();
    ImageIO.write(bim, "png", os); // import javax.imageio.ImageIO;
    os.flush();
    os.close();
    imgsToUpload.put(imgKey, os.toByteArray());
  }

Я импортировал jbig2-imageio, добавив этот фрагмент в pom. xml

        <dependency>
            <groupId>org.apache.pdfbox</groupId>
            <artifactId>pdfbox</artifactId>
            <version>2.0.19</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.pdfbox/jbig2-imageio -->
        <dependency>
            <groupId>org.apache.pdfbox</groupId>
            <artifactId>jbig2-imageio</artifactId>
            <version>3.0.3</version>
        </dependency>

, но созданные изображения остаются пустыми. и эта ошибка регистрируется: Cannot read JPEG2000 image: Java Advanced Imaging (JAI) Image I/O Tools are not installed

Итак, что я пропустил? , я предполагал, что добавление зависимости устранит эту ошибку.

следует ли использовать pdfbox-tools.imageIo вместо java .imageio

PS: Я новичок в Java, поэтому я мог бы быть вещь конфигурации ??

...