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 2016/07/25 15:59:25 UTC
svn commit: r1754031 -
/pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/pagepane/PagePane.java
Author: tilman
Date: Mon Jul 25 15:59:25 2016
New Revision: 1754031
URL: http://svn.apache.org/viewvc?rev=1754031&view=rev
Log:
PDFBOX-2941: include cropbox and /Rotate value to PDF coordinate calculation
Modified:
pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/pagepane/PagePane.java
Modified: pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/pagepane/PagePane.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/pagepane/PagePane.java?rev=1754031&r1=1754030&r2=1754031&view=diff
==============================================================================
--- pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/pagepane/PagePane.java (original)
+++ pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/pagepane/PagePane.java Mon Jul 25 15:59:25 2016
@@ -57,14 +57,12 @@ public class PagePane implements ActionL
private ZoomMenu zoomMenu;
private RotationMenu rotationMenu;
private final JLabel statuslabel;
- private final float height, width;
+ private final PDPage page;
- public PagePane(PDDocument document, COSDictionary page, JLabel statuslabel)
+ public PagePane(PDDocument document, COSDictionary pageDict, JLabel statuslabel)
{
- PDPage pdPage = new PDPage(page);
- pageIndex = document.getPages().indexOf(pdPage);
- height = pdPage.getCropBox().getHeight();
- width = pdPage.getCropBox().getWidth();
+ page = new PDPage(pageDict);
+ pageIndex = document.getPages().indexOf(page);
this.document = document;
this.statuslabel = statuslabel;
initUI();
@@ -156,28 +154,32 @@ public class PagePane implements ActionL
@Override
public void mouseMoved(MouseEvent e)
{
+ float height = page.getCropBox().getHeight();
+ float width = page.getCropBox().getWidth();
+ float offsetX = page.getCropBox().getLowerLeftX();
+ float offsetY = page.getCropBox().getLowerLeftY();
float zoomScale = zoomMenu.getPageZoomScale();
float x = e.getX() / zoomScale;
float y = e.getY() / zoomScale;
int x1, y1;
- switch (RotationMenu.getRotationDegrees())
+ switch ((RotationMenu.getRotationDegrees() + page.getRotation()) % 360)
{
- case 0:
- default:
- x1 = (int) x;
- y1 = (int) (height - y);
- break;
case 90:
- x1 = (int) y;
- y1 = (int) x;
+ x1 = (int) (y + offsetX);
+ y1 = (int) (x + offsetY);
break;
case 180:
- x1 = (int) (width - x);
- y1 = (int) y;
+ x1 = (int) (width - x + offsetX);
+ y1 = (int) (y - offsetY);
break;
case 270:
- x1 = (int) (width - y);
- y1 = (int) (height - x);
+ x1 = (int) (width - y + offsetX);
+ y1 = (int) (height - x + offsetY);
+ break;
+ case 0:
+ default:
+ x1 = (int) (x + offsetX);
+ y1 = (int) (height - y + offsetY);
break;
}
statuslabel.setText(x1 + "," + y1);