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

Daniel Persson commented on PDFBOX-6008:
----------------------------------------

Hi Tilman 

 

Thank you for quick resolution. The improvements are awesome. Ran it locally 
with our tooling and the file could be run in a second or two. Also ran through 
our full test set of 50k+ pages with out tooling and could not find any 
regressions. This seems like a great improvement and really looking forward to 
the next release. Currently we see one of these files at most one time a month 
but it has a big impact and grinds the process to an halt.

 

Best regards

Daniel

> 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: 2.0.34, 3.0.5 PDFBox
>            Reporter: Daniel Persson
>            Assignee: Tilman Hausherr
>            Priority: Major
>              Labels: cache, optimization, performance
>             Fix For: 2.0.35, 3.0.6 PDFBox, 4.0.0
>
>         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

Reply via email to