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);