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 )