[ https://issues.apache.org/jira/browse/PDFBOX-6008?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17952411#comment-17952411 ]
Tilman Hausherr edited comment on PDFBOX-6008 at 5/18/25 8:18 AM: ------------------------------------------------------------------ I made an attempt to remove the two "do things that trigger a ProfileDataException" calls and now rendering took 3000 seconds instead of 6000 seconds on my machine. However we can't remove these calls. Maybe we could do some caching to avoid doing these checks multiple times. According to the profiler, most time is lost in {{PDColorSpace.toRGBImageAWT()}} when {{new ComponentColorModel}} is called. was (Author: tilman): I made an attempt to remove the two "do things that trigger a ProfileDataException" calls and now rendering took 3000 seconds instead of 6000 seconds on my machine. However we can't remove these calls. Maybe we could do some caching to avoid doing these checks multiple times. > PDF takes an hour to render > --------------------------- > > Key: PDFBOX-6008 > URL: https://issues.apache.org/jira/browse/PDFBOX-6008 > Project: PDFBox > Issue Type: Bug > Components: Rendering > Affects Versions: 3.0.5 PDFBox > Reporter: Daniel Persson > Priority: Major > Labels: performance > Attachments: 72641_585_1_114077_6.pdf > > > This PDF seems to have a lot of small images and other objects, not sure if > they are even in the current clipping area. > {code:java} > danielp@morgoth ~/pdfwork/fel $ time java -jar > /home/danielp/github/pdfbox/app/target/pdfbox-app-3.0.5.jar render > --input=72641_585_1_114077_6.pdf > May 14, 2025 12:34:54 PM org.apache.pdfbox.pdmodel.font.PDFont loadUnicodeCmap > WARNING: Invalid ToUnicode CMap in font AAAACC+BentonSans-Regular > May 14, 2025 1:03:56 PM > org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject scaleImage > WARNING: Unable to transform src image > java.awt.image.ImagingOpException: Unable to transform src image > at > java.desktop/java.awt.image.AffineTransformOp.filter(AffineTransformOp.java:287) > at > org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject.scaleImage(PDImageXObject.java:757) > at > org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject.applyMask(PDImageXObject.java:609) > at > org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject.getImage(PDImageXObject.java:473) > at > org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject.getImage(PDImageXObject.java:439) > at > org.apache.pdfbox.rendering.PageDrawer.drawImage(PageDrawer.java:1253) > at > org.apache.pdfbox.contentstream.operator.graphics.DrawObject.process(DrawObject.java:78) > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:924) > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:557) > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processTransparencyGroup(PDFStreamEngine.java:260) > at > org.apache.pdfbox.rendering.PageDrawer.access$1700(PageDrawer.java:124) > at > org.apache.pdfbox.rendering.PageDrawer$TransparencyGroup.<init>(PageDrawer.java:1914) > at > org.apache.pdfbox.rendering.PageDrawer$TransparencyGroup.<init>(PageDrawer.java:1744) > at > org.apache.pdfbox.rendering.PageDrawer.showTransparencyGroupOnGraphics(PageDrawer.java:1682) > at > org.apache.pdfbox.rendering.PageDrawer.showTransparencyGroup(PageDrawer.java:1660) > at > org.apache.pdfbox.contentstream.operator.graphics.DrawObject.process(DrawObject.java:92) > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:924) > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:557) > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processTransparencyGroup(PDFStreamEngine.java:260) > at > org.apache.pdfbox.rendering.PageDrawer.access$1700(PageDrawer.java:124) > at > org.apache.pdfbox.rendering.PageDrawer$TransparencyGroup.<init>(PageDrawer.java:1914) > at > org.apache.pdfbox.rendering.PageDrawer$TransparencyGroup.<init>(PageDrawer.java:1744) > at > org.apache.pdfbox.rendering.PageDrawer.showTransparencyGroupOnGraphics(PageDrawer.java:1682) > at > org.apache.pdfbox.rendering.PageDrawer.showTransparencyGroup(PageDrawer.java:1660) > at > org.apache.pdfbox.contentstream.operator.graphics.DrawObject.process(DrawObject.java:92) > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:924) > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:557) > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processTransparencyGroup(PDFStreamEngine.java:260) > at > org.apache.pdfbox.rendering.PageDrawer.access$1700(PageDrawer.java:124) > at > org.apache.pdfbox.rendering.PageDrawer$TransparencyGroup.<init>(PageDrawer.java:1914) > at > org.apache.pdfbox.rendering.PageDrawer$TransparencyGroup.<init>(PageDrawer.java:1744) > at > org.apache.pdfbox.rendering.PageDrawer.showTransparencyGroupOnGraphics(PageDrawer.java:1682) > at > org.apache.pdfbox.rendering.PageDrawer.showTransparencyGroup(PageDrawer.java:1660) > at > org.apache.pdfbox.contentstream.operator.graphics.DrawObject.process(DrawObject.java:92) > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:924) > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:557) > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:515) > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:158) > at > org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:286) > at > org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:330) > at > org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:247) > at > org.apache.pdfbox.rendering.PDFRenderer.renderImageWithDPI(PDFRenderer.java:233) > at org.apache.pdfbox.tools.PDFToImage.call(PDFToImage.java:175) > at org.apache.pdfbox.tools.PDFToImage.call(PDFToImage.java:51) > at picocli.CommandLine.executeUserObject(CommandLine.java:2045) > at picocli.CommandLine.access$1500(CommandLine.java:148) > at > picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2465) > at picocli.CommandLine$RunLast.handle(CommandLine.java:2457) > at picocli.CommandLine$RunLast.handle(CommandLine.java:2419) > at > picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2277) > at picocli.CommandLine$RunLast.execute(CommandLine.java:2421) > at picocli.CommandLine.execute(CommandLine.java:2174) > at org.apache.pdfbox.tools.PDFBox.main(PDFBox.java:76) > May 14, 2025 1:13:09 PM > org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject scaleImage > WARNING: Unable to transform src image > java.awt.image.ImagingOpException: Unable to transform src image > at > java.desktop/java.awt.image.AffineTransformOp.filter(AffineTransformOp.java:287) > at > org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject.scaleImage(PDImageXObject.java:757) > at > org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject.applyMask(PDImageXObject.java:609) > at > org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject.getImage(PDImageXObject.java:473) > at > org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject.getImage(PDImageXObject.java:439) > at > org.apache.pdfbox.rendering.PageDrawer.drawImage(PageDrawer.java:1253) > at > org.apache.pdfbox.contentstream.operator.graphics.DrawObject.process(DrawObject.java:78) > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:924) > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:557) > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processTransparencyGroup(PDFStreamEngine.java:260) > at > org.apache.pdfbox.rendering.PageDrawer.access$1700(PageDrawer.java:124) > at > org.apache.pdfbox.rendering.PageDrawer$TransparencyGroup.<init>(PageDrawer.java:1914) > at > org.apache.pdfbox.rendering.PageDrawer$TransparencyGroup.<init>(PageDrawer.java:1744) > at > org.apache.pdfbox.rendering.PageDrawer.showTransparencyGroupOnGraphics(PageDrawer.java:1682) > at > org.apache.pdfbox.rendering.PageDrawer.showTransparencyGroup(PageDrawer.java:1660) > at > org.apache.pdfbox.contentstream.operator.graphics.DrawObject.process(DrawObject.java:92) > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:924) > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:557) > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processTransparencyGroup(PDFStreamEngine.java:260) > at > org.apache.pdfbox.rendering.PageDrawer.access$1700(PageDrawer.java:124) > at > org.apache.pdfbox.rendering.PageDrawer$TransparencyGroup.<init>(PageDrawer.java:1914) > at > org.apache.pdfbox.rendering.PageDrawer$TransparencyGroup.<init>(PageDrawer.java:1744) > at > org.apache.pdfbox.rendering.PageDrawer.showTransparencyGroupOnGraphics(PageDrawer.java:1682) > at > org.apache.pdfbox.rendering.PageDrawer.showTransparencyGroup(PageDrawer.java:1660) > at > org.apache.pdfbox.contentstream.operator.graphics.DrawObject.process(DrawObject.java:92) > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:924) > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:557) > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:515) > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:158) > at > org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:286) > at > org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:330) > at > org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:247) > at > org.apache.pdfbox.rendering.PDFRenderer.renderImageWithDPI(PDFRenderer.java:233) > at org.apache.pdfbox.tools.PDFToImage.call(PDFToImage.java:175) > at org.apache.pdfbox.tools.PDFToImage.call(PDFToImage.java:51) > at picocli.CommandLine.executeUserObject(CommandLine.java:2045) > at picocli.CommandLine.access$1500(CommandLine.java:148) > at > picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2465) > at picocli.CommandLine$RunLast.handle(CommandLine.java:2457) > at picocli.CommandLine$RunLast.handle(CommandLine.java:2419) > at > picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2277) > at picocli.CommandLine$RunLast.execute(CommandLine.java:2421) > at picocli.CommandLine.execute(CommandLine.java:2174) > at org.apache.pdfbox.tools.PDFBox.main(PDFBox.java:76) > real 53m25.609s > user 53m48.505s > sys 0m2.429s {code} -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@pdfbox.apache.org For additional commands, e-mail: dev-h...@pdfbox.apache.org