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/12/11 19:33:00 UTC

svn commit: r1644718 - /pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfviewer/PDFPagePanel.java

Author: tilman
Date: Thu Dec 11 18:33:00 2014
New Revision: 1644718

URL: http://svn.apache.org/r1644718
Log:
PDFBOX-2552: fix translation for 270° and refactor

Modified:
    pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfviewer/PDFPagePanel.java

Modified: pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfviewer/PDFPagePanel.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfviewer/PDFPagePanel.java?rev=1644718&r1=1644717&r2=1644718&view=diff
==============================================================================
--- pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfviewer/PDFPagePanel.java (original)
+++ pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfviewer/PDFPagePanel.java Thu Dec 11 18:33:00 2014
@@ -64,23 +64,13 @@ public class PDFPagePanel extends JPanel
         page = pdfPage;
         PDRectangle cropBox = page.findCropBox();
         drawDimension = cropBox.createDimension();
-        int rotationAngle = page.findRotation();
-        // normalize the rotation angle
-        while (rotationAngle < 0)
+        if (page.findRotation() % 180 == 0)
         {
-            rotationAngle += 360;
-        }
-        while (rotationAngle >= 360)
-        {
-            rotationAngle -= 360;
-        }
-        if (rotationAngle == 90 || rotationAngle == 270)
-        {
-            pageDimension = new Dimension(drawDimension.height, drawDimension.width);
+            pageDimension = drawDimension;
         }
         else
         {
-            pageDimension = drawDimension;
+            pageDimension = new Dimension(drawDimension.height, drawDimension.width);
         }
         setSize( pageDimension );
         setBackground( java.awt.Color.white );
@@ -107,19 +97,27 @@ public class PDFPagePanel extends JPanel
             {
                 rotationAngle -= 360;
             }
-            if (rotationAngle == 90 || rotationAngle == 270)
+            if (rotationAngle != 0)
             {
                 Graphics2D g2D = (Graphics2D)g;
-                g2D.translate(pageDimension.getWidth(), 0.0f);
-                g2D.rotate(Math.toRadians(rotationAngle));
-            }
-            else if (rotationAngle == 180)
-            {
-                Graphics2D g2D = (Graphics2D) g;
-                g2D.translate(pageDimension.getWidth(), pageDimension.getHeight());
+                double translateX = 0;
+                double translateY = 0;
+                switch (rotationAngle)
+                {
+                    case 90:
+                        translateX = pageDimension.getWidth();
+                        break;
+                    case 270:
+                        translateY = pageDimension.getHeight();
+                        break;
+                    case 180:
+                        translateX = pageDimension.getWidth();
+                        translateY = pageDimension.getHeight();
+                        break;
+                }
+                g2D.translate(translateX, translateY);
                 g2D.rotate(Math.toRadians(rotationAngle));
             }
-
             drawer.drawPage( g, page, drawDimension );
         }
         catch( IOException e )