You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pdfbox.apache.org by "Tilman Hausherr (JIRA)" <ji...@apache.org> on 2019/05/14 16:22:00 UTC

[jira] [Updated] (PDFBOX-4547) PDFRendtion : Infinite loop

     [ https://issues.apache.org/jira/browse/PDFBOX-4547?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tilman Hausherr updated PDFBOX-4547:
------------------------------------
    Component/s: Rendering

> PDFRendtion : Infinite loop
> ---------------------------
>
>                 Key: PDFBOX-4547
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-4547
>             Project: PDFBox
>          Issue Type: Bug
>          Components: Rendering
>    Affects Versions: 2.0.15
>            Reporter: Bhavesh Kharwa
>            Priority: Critical
>
> 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: dev-unsubscribe@pdfbox.apache.org
For additional commands, e-mail: dev-help@pdfbox.apache.org