チーフ:
私は今、しばらくの間、イメージに分割されたPDFファイルにPDFBoxを使用されてきたが、2.0.19にアップデートした後、私は、予期しない例外に実行し始めています。
これは、例外のスタックトレースです。
java.lang.ArrayIndexOutOfBoundsException: 3
at java.awt.color.ICC_ColorSpace.toRGB(ICC_ColorSpace.java:191)
at org.apache.pdfbox.pdmodel.graphics.color.PDICCBased.toRGB(PDICCBased.java:350)
at org.apache.pdfbox.rendering.PageDrawer.getPaint(PageDrawer.java:335)
at org.apache.pdfbox.rendering.PageDrawer.getNonStrokingPaint(PageDrawer.java:708)
at org.apache.pdfbox.rendering.PageDrawer.fillPath(PageDrawer.java:808)
at org.apache.pdfbox.contentstream.operator.graphics.FillEvenOddRule.process(FillEvenOddRule.java:37)
at org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:875)
at org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:509)
at org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:483)
at org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:156)
at org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:269)
at org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:321)
at org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:243)
at org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:203)
at org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:190)
ここで私は、ファイルを分割するために使用されていることのコードは次のとおりです。
try (PDDocument document = PDDocument.load(new File("updated_test.pdf"))) {
PDPageTree pdPages = document.getDocumentCatalog().getPages();
PDFRenderer pdfRenderer = new PDFRenderer(document);
int page = 0;
for (PDPage pdPage : pdPages) {
String fileName = "demo" + page + ".png";
File tempImg = new File(fileName);
BufferedImage bim = pdfRenderer.renderImage(page);
ImageIOUtil.writeImage(bim, tempImg.getAbsolutePath(), 150);
page++;
}
} catch (Exception e) {
e.printStackTrace();
}
そして、ここで問題が発生し、実際のファイルは以下のとおりです。https://stackoverflowuploads.s3-us-west-2.amazonaws.com/updated_test.pdf
あなたがそれらも同様に非常に有用であろうと同じ結果を得ることができ、他のソリューション/ライブラリについてのアイデアを持っている場合は、すべてのヘルプは、アイデアやアドバイスを大幅にいただければ幸いです。ありがとうございました!
ティルマン・ハウスハー:
これがで修正されていPDFBOX-4801とスナップショットビルドが利用可能である、ここで一番下に。
それは(たぶん)夏に発売される可能性がある、2.0.20になります。
原因は、CMYK ICCプロファイルの辞書に誤っ/ N値(3)です。正しい値は、後述の例外4.この結果されている必要があります。補正されたコードをチェックICCプロファイル及び補正するPCICCBasedオブジェクトの値。