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 2020/12/18 07:48:00 UTC

[jira] [Commented] (PDFBOX-5051) Slow rendering for specific PDF file

    [ https://issues.apache.org/jira/browse/PDFBOX-5051?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17251573#comment-17251573 ] 

Tilman Hausherr commented on PDFBOX-5051:
-----------------------------------------

The file contains 836 inline images of size 76x1 with an ICC colorspace. The time is lost in {{PDColorSpace.toRGBImageAWT()}} which calls {{ColorConvertOp}} to convert from the ICC colorspace to RGB.

> Slow rendering for specific PDF file
> ------------------------------------
>
>                 Key: PDFBOX-5051
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-5051
>             Project: PDFBox
>          Issue Type: Bug
>          Components: Rendering
>    Affects Versions: 2.0.21
>         Environment: Amazon Coretto jdk11.0.3_7, OpenJDK 15
>            Reporter: Stefan Mueller
>            Priority: Major
>         Attachments: slowpdfbox.pdf
>
>
> Doing PDF rendering upon the document being attached is rather slow.
> It takes 18 seconds on a Core i7 machine with 32 GB of RAM and no maximum being imposed upon the JVM.
> {code:java}
>  System.setProperty("sun.java2d.cmm", "sun.java2d.cmm.kcms.KcmsServiceProvider");
>  long ms = System.currentTimeMillis();        
>  try (final PDDocument document = PDDocument.load(new File("C:\\temp\\slowpdfbox.pdf")))
> {         
> ms = System.currentTimeMillis() -ms;         
> System.out.println("Took " + ms + " milliseconds for loading");                     
> PDFRenderer pdfRenderer = new PDFRenderer(document);            
> pdfRenderer.setSubsamplingAllowed(true);            
> for (int page = 0; page < 1; ++page)            
> {             
> ms = System.currentTimeMillis();                             
> BufferedImage bim = pdfRenderer.renderImageWithDPI(page, 300, ImageType.RGB);                                
> ms = System.currentTimeMillis() -ms;                
> System.out.println("Took " + ms + " milliseconds for rendering");                   
>                 
> String fileName = "c:\\temp\\test.jpg";                
> ImageIOUtil.writeImage(bim, fileName, 300); //<---this number            
> }           
>  document.close();        
> } 
> catch (IOException e){           
>  System.err.println("Exception while reading pdf document - " + e);        
> }
> {code}
> Console Output:
> Took 262 milliseconds for loading
> Dez. 18, 2020 6:25:15 VORM. org.apache.pdfbox.pdmodel.graphics.color.PDICCBased ensureDisplayProfile
> WARNUNG: ICC profile is Perceptual, ignoring, treating as Display class
> Took 17914 milliseconds for rendering
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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