You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2011/03/21 19:08:10 UTC
svn commit: r1083886 - in
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox:
pdfviewer/PageDrawer.java pdmodel/graphics/PDExtendedGraphicsState.java
pdmodel/graphics/PDGraphicsState.java
Author: lehmi
Date: Mon Mar 21 18:08:10 2011
New Revision: 1083886
URL: http://svn.apache.org/viewvc?rev=1083886&view=rev
Log:
PDFBOX-975: added shape transparency as proposed by Jesse Eichar
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfviewer/PageDrawer.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/PDExtendedGraphicsState.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/PDGraphicsState.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfviewer/PageDrawer.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfviewer/PageDrawer.java?rev=1083886&r1=1083885&r2=1083886&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfviewer/PageDrawer.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfviewer/PageDrawer.java Mon Mar 21 18:08:10 2011
@@ -273,6 +273,7 @@ public class PageDrawer extends PDFStrea
*/
public void fillPath(int windingRule) throws IOException
{
+ graphics.setComposite(getGraphicsState().getNonStrokeJavaComposite());
graphics.setColor( getGraphicsState().getNonStrokingColor().getJavaColor() );
getLinePath().setWindingRule(windingRule);
graphics.setRenderingHint( RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF );
@@ -311,7 +312,8 @@ public class PageDrawer extends PDFStrea
*/
public void strokePath() throws IOException
{
- graphics.setColor( getGraphicsState().getStrokingColor().getJavaColor() );
+ graphics.setComposite(getGraphicsState().getStrokeJavaComposite());
+ graphics.setColor( getGraphicsState().getStrokingColor().getJavaColor() );
graphics.setRenderingHint( RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF );
graphics.setClip(getGraphicsState().getCurrentClippingPath());
GeneralPath path = getLinePath();
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/PDExtendedGraphicsState.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/PDExtendedGraphicsState.java?rev=1083886&r1=1083885&r2=1083886&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/PDExtendedGraphicsState.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/PDExtendedGraphicsState.java Mon Mar 21 18:08:10 2011
@@ -136,10 +136,11 @@ public class PDExtendedGraphicsState imp
else if( key.equals( COSName.CA ) )
{
gs.setAlphaConstants( getStrokingAlpaConstant().floatValue() );
- }/**
- else if( key.equals( CA_NS ) )
+ }
+ else if( key.equals( COSName.CA_NS ) )
{
- }**/
+ gs.setNonStrokeAlphaConstants(getNonStrokingAlpaConstant().floatValue() );
+ }
else if( key.equals( COSName.AIS ) )
{
gs.setAlphaSource( getAlphaSourceFlag() );
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=1083886&r1=1083885&r2=1083886&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 Mar 21 18:08:10 2011
@@ -16,8 +16,7 @@
*/
package org.apache.pdfbox.pdmodel.graphics;
-import java.awt.Rectangle;
-import java.awt.Shape;
+import java.awt.*;
import java.awt.geom.GeneralPath;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
@@ -51,7 +50,8 @@ public class PDGraphicsState implements
private boolean strokeAdjustment = false;
//blend mode
//soft mask
- private double alphaConstants = 0;
+ private double alphaConstants = 1.0;
+ private double nonStrokingAlphaConstants = 1.0;
private boolean alphaSource = false;
//DEVICE DEPENDENT parameters
@@ -209,9 +209,9 @@ public class PDGraphicsState implements
}
/**
- * Get the value of the alpha constants property.
+ * Get the value of the stroke alpha constants property.
*
- * @return The value of the alpha constants parameter.
+ * @return The value of the stroke alpha constants parameter.
*/
public double getAlphaConstants()
{
@@ -219,9 +219,9 @@ public class PDGraphicsState implements
}
/**
- * set the value of the alpha constants property.
+ * set the value of the stroke alpha constants property.
*
- * @param value The value of the alpha constants parameter.
+ * @param value The value of the stroke alpha constants parameter.
*/
public void setAlphaConstants(double value)
{
@@ -229,9 +229,29 @@ public class PDGraphicsState implements
}
/**
- * get the value of the alpha source property.
+ * Get the value of the non-stroke alpha constants property.
*
- * @return The value of the alpha source parameter.
+ * @return The value of the non-stroke alpha constants parameter.
+ */
+ public double getNonStrokeAlphaConstants()
+ {
+ return nonStrokingAlphaConstants;
+ }
+
+ /**
+ * set the value of the non-stroke alpha constants property.
+ *
+ * @param value The value of the non-stroke alpha constants parameter.
+ */
+ public void setNonStrokeAlphaConstants(double value)
+ {
+ nonStrokingAlphaConstants = value;
+ }
+
+ /**
+ * get the value of the stroke alpha source property.
+ *
+ * @return The value of the stroke alpha source parameter.
*/
public boolean isAlphaSource()
{
@@ -475,4 +495,13 @@ public class PDGraphicsState implements
return currentClippingPath;
}
+ public Composite getStrokeJavaComposite() {
+
+ return AlphaComposite.getInstance(AlphaComposite.SRC_OVER, (float) alphaConstants);
+ }
+
+ public Composite getNonStrokeJavaComposite() {
+
+ return AlphaComposite.getInstance(AlphaComposite.SRC_OVER, (float) nonStrokingAlphaConstants);
+ }
}