You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by je...@apache.org on 2010/10/04 09:42:03 UTC
svn commit: r1004135 -
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/PDGraphicsState.java
Author: jeremias
Date: Mon Oct 4 07:42:02 2010
New Revision: 1004135
URL: http://svn.apache.org/viewvc?rev=1004135&view=rev
Log:
PDFBOX-848: Take offset from CropBox into account when painting a page.
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/PDGraphicsState.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/PDGraphicsState.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/PDGraphicsState.java?rev=1004135&r1=1004134&r2=1004135&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/PDGraphicsState.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/PDGraphicsState.java Mon Oct 4 07:42:02 2010
@@ -16,7 +16,6 @@
*/
package org.apache.pdfbox.pdmodel.graphics;
-import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Shape;
import java.awt.geom.GeneralPath;
@@ -70,18 +69,25 @@ public class PDGraphicsState implements
/**
* Default constructor.
*/
- public PDGraphicsState()
+ public PDGraphicsState()
{
- }
+ }
/**
* Constructor with a given pagesize to initialize the clipping path.
* @param page the size of the page
*/
- public PDGraphicsState(PDRectangle page)
+ public PDGraphicsState(PDRectangle page)
{
currentClippingPath = new GeneralPath(new Rectangle(page.createDimension()));
+ if (page.getLowerLeftX() != 0 || page.getLowerLeftY() != 0)
+ {
+ //Compensate for offset
+ this.currentTransformationMatrix = this.currentTransformationMatrix.multiply(
+ Matrix.getTranslatingInstance(-page.getLowerLeftX(), -page.getLowerLeftY()));
+ }
}
+
/**
* Get the value of the CTM.
*
@@ -401,7 +407,7 @@ public class PDGraphicsState implements
{
clone.setLineDashPattern( (PDLineDashPattern)lineDashPattern.clone() );
}
- if (currentClippingPath != null)
+ if (currentClippingPath != null)
{
clone.setCurrentClippingPath((GeneralPath)currentClippingPath.clone());
}
@@ -437,9 +443,9 @@ public class PDGraphicsState implements
* This will set the current clipping path.
*
* @param pCurrentClippingPath The current clipping path.
- *
+ *
*/
- public void setCurrentClippingPath(Shape pCurrentClippingPath)
+ public void setCurrentClippingPath(Shape pCurrentClippingPath)
{
if (pCurrentClippingPath != null)
{
@@ -464,7 +470,7 @@ public class PDGraphicsState implements
*
* @return The current clipping path.
*/
- public Shape getCurrentClippingPath()
+ public Shape getCurrentClippingPath()
{
return currentClippingPath;
}