You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@pdfbox.apache.org by John Lussmyer <Co...@CasaDelGato.Com> on 2023/12/15 23:11:42 UTC

PDFBox 3.0.1 renderer fails on certain files

I have a customer that uses a LOT of PDF files.  They currently have 2 
files that are failing when we try to render them.
The same files can be viewed with Acrobat Reader or Foxit PDF with no 
errors reported.

 From Acrobat Reader file info:
PDF Producer: PDFOut V3.8 – build 201 – Oct 28 2022
PDF Version: 1.6 (Acrobat 7.x)

The stacktrace makes me suspect that the file has an error in it's image 
compression data - which other readers somehow ignore.

Any suggestions?

This is the exception trace from PDFBox 3.0.1

java.io.IOException: negative array index: -1 near offset 1
        at 
org.apache.pdfbox.filter.LZWFilter.checkIndexBounds(LZWFilter.java:136) 
~[pdfbox-3.0.1.jar:3.0.1]
        at 
org.apache.pdfbox.filter.LZWFilter.doLZWDecode(LZWFilter.java:110) 
~[pdfbox-3.0.1.jar:3.0.1]
        at org.apache.pdfbox.filter.LZWFilter.decode(LZWFilter.java:70) 
~[pdfbox-3.0.1.jar:3.0.1]
        at org.apache.pdfbox.filter.Filter.decode(Filter.java:96) 
~[pdfbox-3.0.1.jar:3.0.1]
        at org.apache.pdfbox.filter.Filter.decode(Filter.java:238) 
~[pdfbox-3.0.1.jar:3.0.1]
        at 
org.apache.pdfbox.cos.COSInputStream.create(COSInputStream.java:73) 
~[pdfbox-3.0.1.jar:3.0.1]
        at 
org.apache.pdfbox.cos.COSStream.createInputStream(COSStream.java:172) 
~[pdfbox-3.0.1.jar:3.0.1]
        at 
org.apache.pdfbox.cos.COSStream.createInputStream(COSStream.java:166) 
~[pdfbox-3.0.1.jar:3.0.1]
        at 
org.apache.pdfbox.pdmodel.common.PDStream.createInputStream(PDStream.java:188) 
~[pdfbox-3.0.1.jar:3.0.1]
        at 
org.apache.pdfbox.pdmodel.common.PDStream.toByteArray(PDStream.java:407) 
~[pdfbox-3.0.1.jar:3.0.1]
        at 
org.apache.pdfbox.pdmodel.common.function.PDFunctionType4.<init>(PDFunctionType4.java:51) 
~[pdfbox-3.0.1.jar:3.0.1]
        at 
org.apache.pdfbox.pdmodel.common.function.PDFunction.create(PDFunction.java:143) 
~[pdfbox-3.0.1.jar:3.0.1]
        at 
org.apache.pdfbox.pdmodel.graphics.color.PDDeviceN.<init>(PDDeviceN.java:93) 
~[pdfbox-3.0.1.jar:3.0.1]
        at 
org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace.create(PDColorSpace.java:184) 
~[pdfbox-3.0.1.jar:3.0.1]
        at 
org.apache.pdfbox.pdmodel.PDResources.getColorSpace(PDResources.java:223) 
~[pdfbox-3.0.1.jar:3.0.1]
        at 
org.apache.pdfbox.pdmodel.PDResources.getColorSpace(PDResources.java:193) 
~[pdfbox-3.0.1.jar:3.0.1]
        at 
org.apache.pdfbox.contentstream.operator.color.SetNonStrokingColorSpace.process(SetNonStrokingColorSpace.java:56) 
~[pdfbox-3.0.1.jar:3.0.1]
        at 
org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:892) 
~[pdfbox-3.0.1.jar:3.0.1]
        at 
org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:530) 
~[pdfbox-3.0.1.jar:3.0.1]
        at 
org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:505) 
~[pdfbox-3.0.1.jar:3.0.1]
        at 
org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:152) 
~[pdfbox-3.0.1.jar:3.0.1]
        at 
org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:282) 
~[pdfbox-3.0.1.jar:3.0.1]
        at 
org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:330) 
~[pdfbox-3.0.1.jar:3.0.1]
        at 
org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:247) 
~[pdfbox-3.0.1.jar:3.0.1]
        at 
org.apache.pdfbox.rendering.PDFRenderer.renderImageWithDPI(PDFRenderer.java:233) 
~[pdfbox-3.0.1.jar:3.0.1]
        at 
com.metrixsoftware.preview.PDFBoxRenderer.render(PDFBoxRenderer.java:79) 
[bin/:?]



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@pdfbox.apache.org
For additional commands, e-mail: users-help@pdfbox.apache.org


Re: PDFBox 3.0.1 renderer fails on certain files

Posted by Tilman Hausherr <TH...@t-online.de>.
The file you mention likely has an almost empty stream. The other 
viewers don't fail, that's the difference.

There might also be a different problem (object reference mismatch), so 
it would be nice to have the file. Despite the LZW compression, the part 
that fails isn't an image in this stack trace, it's the stream of a type 
4 function for a DeviceN colorspace.

Tilman

On 16.12.2023 00:11, John Lussmyer wrote:
> I have a customer that uses a LOT of PDF files.  They currently have 2 
> files that are failing when we try to render them.
> The same files can be viewed with Acrobat Reader or Foxit PDF with no 
> errors reported.
>
> From Acrobat Reader file info:
> PDF Producer: PDFOut V3.8 – build 201 – Oct 28 2022
> PDF Version: 1.6 (Acrobat 7.x)
>
> The stacktrace makes me suspect that the file has an error in it's 
> image compression data - which other readers somehow ignore.
>
> Any suggestions?
>
> This is the exception trace from PDFBox 3.0.1
>
> java.io.IOException: negative array index: -1 near offset 1
>        at 
> org.apache.pdfbox.filter.LZWFilter.checkIndexBounds(LZWFilter.java:136) 
> ~[pdfbox-3.0.1.jar:3.0.1]
>        at 
> org.apache.pdfbox.filter.LZWFilter.doLZWDecode(LZWFilter.java:110) 
> ~[pdfbox-3.0.1.jar:3.0.1]
>        at org.apache.pdfbox.filter.LZWFilter.decode(LZWFilter.java:70) 
> ~[pdfbox-3.0.1.jar:3.0.1]
>        at org.apache.pdfbox.filter.Filter.decode(Filter.java:96) 
> ~[pdfbox-3.0.1.jar:3.0.1]
>        at org.apache.pdfbox.filter.Filter.decode(Filter.java:238) 
> ~[pdfbox-3.0.1.jar:3.0.1]
>        at 
> org.apache.pdfbox.cos.COSInputStream.create(COSInputStream.java:73) 
> ~[pdfbox-3.0.1.jar:3.0.1]
>        at 
> org.apache.pdfbox.cos.COSStream.createInputStream(COSStream.java:172) 
> ~[pdfbox-3.0.1.jar:3.0.1]
>        at 
> org.apache.pdfbox.cos.COSStream.createInputStream(COSStream.java:166) 
> ~[pdfbox-3.0.1.jar:3.0.1]
>        at 
> org.apache.pdfbox.pdmodel.common.PDStream.createInputStream(PDStream.java:188) 
> ~[pdfbox-3.0.1.jar:3.0.1]
>        at 
> org.apache.pdfbox.pdmodel.common.PDStream.toByteArray(PDStream.java:407) 
> ~[pdfbox-3.0.1.jar:3.0.1]
>        at 
> org.apache.pdfbox.pdmodel.common.function.PDFunctionType4.<init>(PDFunctionType4.java:51) 
> ~[pdfbox-3.0.1.jar:3.0.1]
>        at 
> org.apache.pdfbox.pdmodel.common.function.PDFunction.create(PDFunction.java:143) 
> ~[pdfbox-3.0.1.jar:3.0.1]
>        at 
> org.apache.pdfbox.pdmodel.graphics.color.PDDeviceN.<init>(PDDeviceN.java:93) 
> ~[pdfbox-3.0.1.jar:3.0.1]
>        at 
> org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace.create(PDColorSpace.java:184) 
> ~[pdfbox-3.0.1.jar:3.0.1]
>        at 
> org.apache.pdfbox.pdmodel.PDResources.getColorSpace(PDResources.java:223) 
> ~[pdfbox-3.0.1.jar:3.0.1]
>        at 
> org.apache.pdfbox.pdmodel.PDResources.getColorSpace(PDResources.java:193) 
> ~[pdfbox-3.0.1.jar:3.0.1]
>        at 
> org.apache.pdfbox.contentstream.operator.color.SetNonStrokingColorSpace.process(SetNonStrokingColorSpace.java:56) 
> ~[pdfbox-3.0.1.jar:3.0.1]
>        at 
> org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:892) 
> ~[pdfbox-3.0.1.jar:3.0.1]
>        at 
> org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:530) 
> ~[pdfbox-3.0.1.jar:3.0.1]
>        at 
> org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:505) 
> ~[pdfbox-3.0.1.jar:3.0.1]
>        at 
> org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:152) 
> ~[pdfbox-3.0.1.jar:3.0.1]
>        at 
> org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:282) 
> ~[pdfbox-3.0.1.jar:3.0.1]
>        at 
> org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:330) 
> ~[pdfbox-3.0.1.jar:3.0.1]
>        at 
> org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:247) 
> ~[pdfbox-3.0.1.jar:3.0.1]
>        at 
> org.apache.pdfbox.rendering.PDFRenderer.renderImageWithDPI(PDFRenderer.java:233) 
> ~[pdfbox-3.0.1.jar:3.0.1]
>        at 
> com.metrixsoftware.preview.PDFBoxRenderer.render(PDFBoxRenderer.java:79) 
> [bin/:?]
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@pdfbox.apache.org
> For additional commands, e-mail: users-help@pdfbox.apache.org
>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@pdfbox.apache.org
For additional commands, e-mail: users-help@pdfbox.apache.org