You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ja...@apache.org on 2014/02/27 01:43:02 UTC

svn commit: r1572367 - in /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox: pdfviewer/PageDrawer.java pdmodel/graphics/pattern/TilingPaint.java

Author: jahewson
Date: Thu Feb 27 00:43:02 2014
New Revision: 1572367

URL: http://svn.apache.org/r1572367
Log:
PDFBOX-1094: Fix for NPE in jagpdf and patterns drawn black

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfviewer/PageDrawer.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/pattern/TilingPaint.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfviewer/PageDrawer.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfviewer/PageDrawer.java?rev=1572367&r1=1572366&r2=1572367&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfviewer/PageDrawer.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfviewer/PageDrawer.java Thu Feb 27 00:43:02 2014
@@ -211,6 +211,8 @@ public class PageDrawer extends PDFStrea
         {
             getGraphicsState().setNonStrokingColorSpace(colorSpace);
             getGraphicsState().setNonStrokingColor(color);
+            getGraphicsState().setStrokingColorSpace(colorSpace);
+            getGraphicsState().setStrokingColor(color);
         }
 
         processSubStream(pattern.getResources(), (COSStream)pattern.getCOSObject());

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/pattern/TilingPaint.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/pattern/TilingPaint.java?rev=1572367&r1=1572366&r2=1572367&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/pattern/TilingPaint.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/pattern/TilingPaint.java Thu Feb 27 00:43:02 2014
@@ -67,9 +67,16 @@ public class TilingPaint extends Texture
     //  gets rect in parent content stream coordinates
     private static Rectangle getTransformedRect(PDTilingPattern pattern)
     {
-        AffineTransform at = pattern.getMatrix().createAffineTransform();
-        Rectangle rect = new Rectangle(pattern.getBBox().createDimension());
-        return at.createTransformedShape(rect).getBounds();
+        if (pattern.getMatrix() == null)
+        {
+            return new Rectangle(pattern.getBBox().createDimension());
+        }
+        else
+        {
+            AffineTransform at = pattern.getMatrix().createAffineTransform();
+            Rectangle rect = new Rectangle(pattern.getBBox().createDimension());
+            return at.createTransformedShape(rect).getBounds();
+        }
     }
 
     // gets image in parent stream coordinates
@@ -90,10 +97,20 @@ public class TilingPaint extends Texture
 
         // TODO xStep and yStep
 
-        // undo translation
-        Matrix matrix = (Matrix)pattern.getMatrix().clone();
-        matrix.setValue(2, 0, matrix.getValue(2, 0) - (float)rect.getX()); // tx
-        matrix.setValue(2, 1, matrix.getValue(2, 1) - (float)rect.getY()); // ty
+        // matrix
+        Matrix matrix;
+        if (pattern.getMatrix() == null)
+        {
+            // identity
+            matrix = new Matrix();
+        }
+        else
+        {
+            // undo translation
+            matrix = (Matrix)pattern.getMatrix().clone();
+            matrix.setValue(2, 0, matrix.getValue(2, 0) - (float)rect.getX()); // tx
+            matrix.setValue(2, 1, matrix.getValue(2, 1) - (float)rect.getY()); // ty
+        }
 
         PageDrawer drawer = new PageDrawer();
         PDRectangle pdRect = new PDRectangle(0, 0, width, height);