Bhavesh Kharwa created PDFBOX-4547:
--------------------------------------

             Summary: PDFRendtion : Infinite loop
                 Key: PDFBOX-4547
                 URL: https://issues.apache.org/jira/browse/PDFBOX-4547
             Project: PDFBox
          Issue Type: Bug
    Affects Versions: 2.0.15
            Reporter: Bhavesh Kharwa


while processing pdf file for generate rendtion, the following method 
_processStreamOperators_ of *org.apache.pdfbox.contentstream.PDFStreamEngine* 
class goes into infinite loop. I am using library pdfbox-2.0.15
{code:java}
 private void processStreamOperators(PDContentStream contentStream) throws 
IOException
    {
        List<COSBase> arguments = new ArrayList<COSBase>();
        PDFStreamParser parser = new PDFStreamParser(contentStream);
        Object token = parser.parseNextToken();
        while (token != null)
        {
            if (token instanceof COSObject)
            {
                arguments.add(((COSObject) token).getObject());
            }
            else if (token instanceof Operator)
            {
                processOperator((Operator) token, arguments);
                arguments = new ArrayList<COSBase>();
            }
            else
            {
                arguments.add((COSBase) token);
            }
            token = parser.parseNextToken();
        }
    }
{code}
Generate rendition code for pdf as below:
{code:java}
try (final PDDocument pdf = PDDocument.load(imageBytes)) {
                if (pdf != null && pdf.getNumberOfPages() > 0) {
                        PDFRenderer renderer = new PDFRenderer(pdf);
                        BufferedImage image = renderer.renderImage(0, 1);
                        final BufferedImage scaledImage;
                        if (image.getWidth() > rendition.getWidth()) {
                                scaledImage = 
Thumbnails.of(image).width(rendition.getWidth()).asBufferedImage();
                        } else {
                                scaledImage = image;
                        }
                        outputBytes = 
ImageUtils.writeBufferedImageToBytes(scaledImage, mimeType);
                                }
                        }
{code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to