ICEpdf
  1. ICEpdf
  2. PDF-582

Eror generating clip inverse.

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 5.0.1
    • Fix Version/s: 5.0.7
    • Component/s: Core/Parsing
    • Labels:
      None
    • Environment:
      -
    • Salesforce Case Reference:

      Description

      The PDF renders some lines but then throws:

      INFO: ICEsoft ICEpdf Pro 5.0.1
      May 17, 2013 8:33:51 PM org.icepdf.core.pobjects.graphics.GraphicsState updateCl
      ipCM
      FINE: Eror generating clip inverse.
      java.awt.geom.NoninvertibleTransformException: Determinant is 0
      at java.awt.geom.AffineTransform.createInverse(AffineTransform.java:2688)
      at org.icepdf.core.pobjects.graphics.GraphicsState.updateClipCM(GraphicsState.j
      ava:600)
      at org.icepdf.core.util.content.AbstractContentParser.consume_cm(AbstractConten
      tParser.java:445)
      at org.icepdf.core.util.content.NContentParser.parse(Unknown Source)
      at org.icepdf.core.pobjects.Page.init(Page.java:363)
      at org.icepdf.ri.common.views.PageViewComponentImpl$PageInitializer.run(PageVie
      wComponentImpl.java:1008)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.ja
      va:895)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:9
      18)
      at java.lang.Thread.run(Thread.java:680)
      1. sc12168.pdf
        253 kB
        Tyler Johnson

        Activity

        Hide
        Patrick Corless added a comment -

        The NoninvertibleTransformException stack trace is a little verbose and normally doesn't cause a problem. In this particular case the the pdf is specifying a

        {0,0,0,0,0,0}

        matrix and thus the error report when creating the inverse. The code does however return the Identity transformation when the error is thrown.

        The rendering failure occurs because of a missing clip bounds during the painting of the textSprite. I've added a null pointer check to make sure the intersection calculation only occurs on a valid shape. After these changes the PDF is rendering correctly.

        Show
        Patrick Corless added a comment - The NoninvertibleTransformException stack trace is a little verbose and normally doesn't cause a problem. In this particular case the the pdf is specifying a {0,0,0,0,0,0} matrix and thus the error report when creating the inverse. The code does however return the Identity transformation when the error is thrown. The rendering failure occurs because of a missing clip bounds during the painting of the textSprite. I've added a null pointer check to make sure the intersection calculation only occurs on a valid shape. After these changes the PDF is rendering correctly.
        Hide
        Patrick Corless added a comment -

        Updated the trunk and the 5.0.1 branch with this patch. Closing.

        Show
        Patrick Corless added a comment - Updated the trunk and the 5.0.1 branch with this patch. Closing.

          People

          • Assignee:
            Patrick Corless
            Reporter:
            Tyler Johnson
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: