You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2014/08/31 16:58:46 UTC

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

Author: tilman
Date: Sun Aug 31 14:58:46 2014
New Revision: 1621597

URL: http://svn.apache.org/r1621597
Log:
PDFBOX-1094: use the tranform before any rendering has begun, as suggested by John Hewson

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

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=1621597&r1=1621596&r2=1621597&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 Sun Aug 31 14:58:46 2014
@@ -168,7 +168,7 @@ public class TilingPaint extends Texture
         // transform without the translation
         AffineTransform at = new AffineTransform(
                 xform.getScaleX(), xform.getShearY(),
-                xform.getShearX(), -xform.getScaleY(),
+                -xform.getShearX(), xform.getScaleY(),
                 0, 0);
         graphics.transform(at);
         drawer.drawTilingPattern(graphics, pattern, pdRect, matrix, colorSpace, color);

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java?rev=1621597&r1=1621596&r2=1621597&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java Sun Aug 31 14:58:46 2014
@@ -89,6 +89,9 @@ public class PageDrawer extends PDFGraph
 
     private Graphics2D graphics;
 
+    // initial transform
+    private AffineTransform xform;
+    
     // clipping winding rule used for the clipping path
     private int clipWindingRule = -1;
     private GeneralPath linePath = new GeneralPath();
@@ -145,6 +148,7 @@ public class PageDrawer extends PDFGraph
     public void drawPage(Graphics g, PDRectangle pageSize) throws IOException
     {
         graphics = (Graphics2D) g;
+        xform = graphics.getTransform();
         this.pageSize = pageSize;
         graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
         graphics.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON);
@@ -561,7 +565,7 @@ public class PageDrawer extends PDFGraph
         PDGraphicsState graphicsState = getGraphicsState();
         return applySoftMaskToPaint(graphicsState.getStrokingColorSpace()
                 .toPaint(renderer, graphicsState.getStrokingColor(),
-                        getSubStreamMatrix(), graphics.getTransform(),
+                        getSubStreamMatrix(), xform,
                         (int) pageSize.getHeight()),
                 graphicsState.getSoftMask());
     }
@@ -571,7 +575,7 @@ public class PageDrawer extends PDFGraph
     {
         return getGraphicsState().getNonStrokingColorSpace()
                 .toPaint(renderer, getGraphicsState().getNonStrokingColor(),
-                        getSubStreamMatrix(), graphics.getTransform(),
+                        getSubStreamMatrix(), xform,
                         (int) pageSize.getHeight());
     }
 
@@ -728,7 +732,7 @@ public class PageDrawer extends PDFGraph
             PDColor color = getGraphicsState().getNonStrokingColor();
             BufferedImage image = pdImage.getStencilImage(
                     colorSpace.toPaint(renderer, color,
-                            getSubStreamMatrix(), graphics.getTransform(),
+                            getSubStreamMatrix(), xform,
                             (int) pageSize.getHeight()));
 
             // draw the image