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 2012/01/24 19:07:11 UTC
svn commit: r1235384 - in
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox: pdfviewer/
pdmodel/graphics/shading/ util/operator/pagedrawer/
Author: lehmi
Date: Tue Jan 24 18:07:11 2012
New Revision: 1235384
URL: http://svn.apache.org/viewvc?rev=1235384&view=rev
Log:
PDFBOX-615: added implementation of an axial shading to be used with sh operator
Added:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/AxialShadingContext.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/AxialShadingPaint.java
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfviewer/PageDrawer.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDShadingType2.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/SHFill.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=1235384&r1=1235383&r2=1235384&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 Tue Jan 24 18:07:11 2012
@@ -21,6 +21,7 @@ import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
+import java.awt.Paint;
import java.awt.geom.Area;
import java.awt.RenderingHints;
import java.awt.geom.AffineTransform;
@@ -40,6 +41,9 @@ import org.apache.pdfbox.pdmodel.common.
import org.apache.pdfbox.pdmodel.font.PDFont;
import org.apache.pdfbox.pdmodel.graphics.PDGraphicsState;
import org.apache.pdfbox.pdmodel.graphics.PDShading;
+import org.apache.pdfbox.pdmodel.graphics.shading.AxialShadingPaint;
+import org.apache.pdfbox.pdmodel.graphics.shading.PDShadingResources;
+import org.apache.pdfbox.pdmodel.graphics.shading.PDShadingType2;
import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotation;
import org.apache.pdfbox.pdmodel.interactive.annotation.PDAppearanceDictionary;
import org.apache.pdfbox.pdmodel.interactive.annotation.PDAppearanceStream;
@@ -49,7 +53,6 @@ import org.apache.pdfbox.util.PDFStreamE
import org.apache.pdfbox.util.ResourceLoader;
import org.apache.pdfbox.util.TextPosition;
import org.apache.pdfbox.cos.COSName;
-import org.apache.pdfbox.cos.COSDictionary;
/**
@@ -64,10 +67,16 @@ public class PageDrawer extends PDFStrea
/**
* Log instance.
*/
- private static final Log log = LogFactory.getLog(PageDrawer.class);
+ private static final Log LOG = LogFactory.getLog(PageDrawer.class);
private Graphics2D graphics;
+ /**
+ * Size of the page.
+ */
protected Dimension pageSize;
+ /**
+ * Current page to be rendered.
+ */
protected PDPage page;
private GeneralPath linePath = new GeneralPath();
@@ -120,7 +129,8 @@ public class PageDrawer extends PDFStrea
appearanceName = "default";
}
Map appearanceMap = appearDictionary.getNormalAppearance();
- if (appearanceMap != null) {
+ if (appearanceMap != null)
+ {
PDAppearanceStream appearance =
(PDAppearanceStream)appearanceMap.get( appearanceName );
if( appearance != null )
@@ -145,7 +155,8 @@ public class PageDrawer extends PDFStrea
{
try
{
- switch(this.getGraphicsState().getTextState().getRenderingMode()) {
+ switch(this.getGraphicsState().getTextState().getRenderingMode())
+ {
case PDTextState.RENDERING_MODE_FILL_TEXT:
graphics.setComposite( this.getGraphicsState().getNonStrokeJavaComposite() );
graphics.setColor( this.getGraphicsState().getNonStrokingColor().getJavaColor() );
@@ -164,7 +175,7 @@ public class PageDrawer extends PDFStrea
break;
default:
// TODO : need to implement....
- log.debug("Unsupported RenderingMode "
+ LOG.debug("Unsupported RenderingMode "
+ this.getGraphicsState().getTextState().getRenderingMode()
+ " in PageDrawer.processTextPosition()."
+ " Using RenderingMode "
@@ -286,7 +297,7 @@ public class PageDrawer extends PDFStrea
}
else
{
- log.info("ColorSpace "+getGraphicsState().getNonStrokingColor().getColorSpace().getName()
+ LOG.info("ColorSpace "+getGraphicsState().getNonStrokingColor().getColorSpace().getName()
+" doesn't provide a non-stroking color, using white instead!");
graphics.setColor( Color.WHITE );
}
@@ -335,9 +346,9 @@ public class PageDrawer extends PDFStrea
}
else
{
- log.info("ColorSpace "+getGraphicsState().getStrokingColor().getColorSpace().getName()
- +" doesn't provide a stroking color, using black instead!");
- graphics.setColor( Color.BLACK );
+ LOG.info("ColorSpace "+getGraphicsState().getStrokingColor().getColorSpace().getName()
+ +" doesn't provide a stroking color, using white instead!");
+ graphics.setColor( Color.WHITE );
}
graphics.setRenderingHint( RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF );
graphics.setClip(getGraphicsState().getCurrentClippingPath());
@@ -407,7 +418,8 @@ public class PageDrawer extends PDFStrea
* @param at The transformation to use when drawing.
*
*/
- public void drawImage(Image awtImage, AffineTransform at){
+ public void drawImage(Image awtImage, AffineTransform at)
+ {
graphics.setComposite(getGraphicsState().getStrokeJavaComposite());
graphics.setClip(getGraphicsState().getCurrentClippingPath());
graphics.drawImage( awtImage, at, null );
@@ -419,61 +431,56 @@ public class PageDrawer extends PDFStrea
* @param ShadingName The name of the Shading Dictionary to use for this fill instruction.
*
* @throws IOException If there is an IO error while shade-filling the path/clipping area.
+ *
+ * @deprecated use {@link #shFill(COSName)) instead.
*/
public void SHFill(COSName ShadingName) throws IOException
{
- PDShading Shading =FindShadingDictionary(ShadingName);
- log.info("Shading = " + Shading.toString());
-
- switch (Shading.getShadingType()){
+ shFill(ShadingName);
+ }
+
+ /**
+ * Fill with Shading. Called by SHFill operator.
+ *
+ * @param shadingName The name of the Shading Dictionary to use for this fill instruction.
+ *
+ * @throws IOException If there is an IO error while shade-filling the clipping area.
+ */
+ public void shFill(COSName shadingName) throws IOException
+ {
+ PDShadingResources shading = getResources().getShadings().get(shadingName.getName());
+ LOG.debug("Shading = " + shading.toString());
+ int shadingType = shading.getShadingType();
+ Matrix ctm = getGraphicsState().getCurrentTransformationMatrix();
+ Paint paint = null;
+ switch (shadingType)
+ {
case 1:
- SHFill_Function(Shading);
+ // TODO
+ LOG.debug("Function based shading not yet supported");
break;
case 2:
- SHFill_Axial(Shading);
+ paint = new AxialShadingPaint((PDShadingType2)shading, ctm, pageSize);
break;
case 3:
- SHFill_Radial(Shading);
+ // TODO
+ LOG.debug("Radial shading not yet supported");
break;
case 4:
- SHFill_FreeGourad(Shading);
- break;
case 5:
- SHFill_LatticeGourad(Shading);
- break;
case 6:
- SHFill_CoonsPatch(Shading);
- break;
case 7:
- SHFill_TensorPatch(Shading);
+ // TODO
+ LOG.debug("Shading type "+shadingType+" not yet supported");
break;
-
default:
- throw new IOException("Invalid ShadingType " + Shading.getShadingType() + " for Shading " + ShadingName);
+ throw new IOException("Invalid ShadingType " + shadingType + " for Shading " + shadingName);
}
+ graphics.setComposite(getGraphicsState().getNonStrokeJavaComposite());
+ graphics.setPaint(paint);
+ graphics.setRenderingHint( RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF );
+ graphics.fill( getGraphicsState().getCurrentClippingPath() );
}
-
- /**
- * Find the appropriate Shading Dictionary. This is its own private function as it is really not appropriate to override when deriving from PageDrawer.
- *
- * @param ShadingName The name of the Shading Dictionary to use for this fill instruction.
- *
- * @returns The PDShading object
- * @throws IOException If there is an IO error while attempting to find the appropriate PDShading object.
- */
- private PDShading FindShadingDictionary(COSName ShadingName) throws IOException
- {
-
- PDResources resources = (PDResources)page.getResources();
-
- COSDictionary AllShadings = (COSDictionary)(resources.getCOSDictionary().getDictionaryObject(COSName.SHADING));
-
- PDShading Shading = new PDShading(ShadingName, (COSDictionary)(AllShadings.getDictionaryObject(ShadingName)));
-
- return Shading;
-
- }
-
/**
* Fill with a Function-based gradient / shading.
* If extending the class, override this and its siblings, not the public SHFill method.
Added: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/AxialShadingContext.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/AxialShadingContext.java?rev=1235384&view=auto
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/AxialShadingContext.java (added)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/AxialShadingContext.java Tue Jan 24 18:07:11 2012
@@ -0,0 +1,236 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.pdfbox.pdmodel.graphics.shading;
+
+import java.awt.Dimension;
+import java.awt.PaintContext;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.Point2D;
+import java.awt.image.ColorModel;
+import java.awt.image.Raster;
+import java.awt.image.WritableRaster;
+import java.io.IOException;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.pdfbox.cos.COSArray;
+import org.apache.pdfbox.cos.COSBoolean;
+import org.apache.pdfbox.pdmodel.common.function.PDFunction;
+import org.apache.pdfbox.util.Matrix;
+
+/**
+ * This class represents the PaintContext of an axial shading.
+ *
+ * @author lehmi
+ * @version $Revision: $
+ *
+ */
+public class AxialShadingContext implements PaintContext
+{
+
+ private ColorModel colorModel;
+ private PDFunction function;
+ private Point2D startingPoint;
+ private Point2D endingPoint;
+
+ private float[] domain;
+ private boolean[] extend;
+ private double x1x0;
+ private double y1y0;
+ private float d1d0;
+ private double denom;
+
+ /**
+ * Log instance.
+ */
+ private static final Log LOG = LogFactory.getLog(AxialShadingContext.class);
+
+ /**
+ * Constructor.
+ *
+ * @param shadingType2 the shading type to be used
+ * @param colorModelValue the color model to be used
+ * @param xform transformation for user to device space
+ * @param ctm current transformation matrix
+ * @param pageSize size of the current page
+ *
+ */
+ public AxialShadingContext(PDShadingType2 shadingType2, ColorModel colorModelValue,
+ AffineTransform xform, Matrix ctm, Dimension pageSize)
+ {
+ // colorModel
+ if (colorModelValue != null)
+ {
+ colorModel = colorModelValue;
+ }
+ else
+ {
+ try
+ {
+ // TODO bpc != 8 ??
+ colorModel = shadingType2.getColorSpace().createColorModel(8);
+ }
+ catch(IOException exception)
+ {
+ LOG.error("error while creating colorModel", exception);
+ }
+ }
+ // shading function
+ try
+ {
+ function = shadingType2.getFunction();
+ }
+ catch(IOException exception)
+ {
+ LOG.error("error while creating a function", exception);
+ }
+
+ float yScaling = ctm.getYScale();
+ float angle = (float)Math.acos(ctm.getValue(0, 0)/ctm.getXScale());
+ if (ctm.getValue(0, 1) < 0 && ctm.getValue(1, 0) > 0)
+ {
+ angle = (-1)*angle;
+ }
+ ctm.setValue(2, 1, (float)(pageSize.height - ctm.getYPosition() - Math.cos(angle)*yScaling));
+ ctm.setValue(2, 0, (float)(ctm.getXPosition() - Math.sin(angle)*yScaling));
+ // because of the moved 0,0-reference, we have to shear in the opposite direction
+ ctm.setValue(0, 1, (-1)*ctm.getValue(0, 1));
+ ctm.setValue(1, 0, (-1)*ctm.getValue(1, 0));
+
+ // create startingPoint
+ float[] coords = shadingType2.getCoords().toFloatArray();
+ startingPoint = new Point2D.Float(coords[0], coords[1]);
+ startingPoint = ctm.createAffineTransform().transform(startingPoint, null);
+ startingPoint = xform.transform(startingPoint, null);
+ // create endingPoint
+ endingPoint = new Point2D.Float(coords[2], coords[3]);
+ endingPoint = ctm.createAffineTransform().transform(endingPoint, null);
+ endingPoint = xform.transform(endingPoint, null);
+ // domain values
+ if (shadingType2.getDomain() != null)
+ {
+ domain = shadingType2.getDomain().toFloatArray();
+ }
+ else
+ {
+ // set default values
+ domain = new float[]{0,1};
+ }
+ // extend values
+ COSArray extendValues = shadingType2.getExtend();
+ if (shadingType2.getExtend() != null)
+ {
+ extend = new boolean[2];
+ extend[0] = ((COSBoolean)extendValues.get(0)).getValue();
+ extend[1] = ((COSBoolean)extendValues.get(1)).getValue();
+ }
+ else
+ {
+ // set default values
+ extend = new boolean[]{false,false};
+ }
+ // calculate some constants to be used in getRaster
+ x1x0 = endingPoint.getX() - startingPoint.getX();
+ y1y0 = endingPoint.getY() - startingPoint.getY();
+ d1d0 = domain[1]-domain[0];
+ denom = Math.pow(x1x0,2) + Math.pow(y1y0, 2);
+ // TODO take a possible Background value into account
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void dispose()
+ {
+ colorModel = null;
+ function = null;
+ startingPoint = null;
+ endingPoint = null;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public ColorModel getColorModel()
+ {
+ return colorModel;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public Raster getRaster(int x, int y, int w, int h)
+ {
+ // create writable raster
+ WritableRaster raster = getColorModel().createCompatibleWritableRaster(w, h);
+
+ float[] input = new float[1];
+ int[] data = new int[w * h * 3];
+ for (int j = 0; j < h; j++)
+ {
+ for (int i = 0; i < w; i++)
+ {
+ double inputValue = x1x0 * (x + i - startingPoint.getX());
+ inputValue += y1y0 * (y + j - startingPoint.getY());
+ inputValue /= denom;
+ // input value is out of range
+ if (inputValue < domain[0])
+ {
+ // the shading has to be extended if extend[0] == true
+ if (extend[0])
+ {
+ inputValue = domain[0];
+ }
+ else
+ {
+ continue;
+ }
+ }
+ // input value is out of range
+ else if (inputValue > domain[1])
+ {
+ // the shading has to be extended if extend[1] == true
+ if (extend[1])
+ {
+ inputValue = domain[1];
+ }
+ else
+ {
+ continue;
+ }
+ }
+ input[0] = (float)(domain[0] + (d1d0*inputValue));
+ float[] values = null;
+ try
+ {
+ values = function.eval(input);
+ }
+ catch (IOException exception)
+ {
+ LOG.error("error while processing a function", exception);
+ }
+ int index = (j * w + i) * 3;
+ data[index] = (int)(values[0]*255);
+ data[index+1] = (int)(values[1]*255);
+ data[index+2] = (int)(values[2]*255);
+ }
+ }
+ raster.setPixels(0, 0, w, h, data);
+ return raster;
+ }
+
+}
Added: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/AxialShadingPaint.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/AxialShadingPaint.java?rev=1235384&view=auto
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/AxialShadingPaint.java (added)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/AxialShadingPaint.java Tue Jan 24 18:07:11 2012
@@ -0,0 +1,75 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.pdfbox.pdmodel.graphics.shading;
+
+import java.awt.Dimension;
+import java.awt.Paint;
+import java.awt.PaintContext;
+import java.awt.Rectangle;
+import java.awt.RenderingHints;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.Rectangle2D;
+import java.awt.image.ColorModel;
+
+import org.apache.pdfbox.util.Matrix;
+
+/**
+ * This represents the Paint of an axial shading.
+ *
+ * @author lehmi
+ * @version $Revision: $
+ *
+ */
+public class AxialShadingPaint implements Paint
+{
+
+ private PDShadingType2 shading;
+ private Matrix currentTransformationMatrix;
+ private Dimension pageSize;
+
+ /**
+ * Constructor.
+ *
+ * @param shadingType2 the shading resources
+ * @param ctm current transformation matrix
+ * @param pageSizeValue size of the current page
+ */
+ public AxialShadingPaint(PDShadingType2 shadingType2, Matrix ctm, Dimension pageSizeValue)
+ {
+ shading = shadingType2;
+ currentTransformationMatrix = ctm;
+ pageSize = pageSizeValue;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public int getTransparency()
+ {
+ return 0;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public PaintContext createContext(ColorModel cm, Rectangle deviceBounds,
+ Rectangle2D userBounds, AffineTransform xform, RenderingHints hints)
+ {
+ return new AxialShadingContext(shading, cm, xform, currentTransformationMatrix, pageSize);
+ }
+
+}
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDShadingType2.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDShadingType2.java?rev=1235384&r1=1235383&r2=1235384&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDShadingType2.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDShadingType2.java Tue Jan 24 18:07:11 2012
@@ -77,8 +77,15 @@ public class PDShadingType2 extends PDSh
*/
public void setExtend(COSArray newExtend)
{
- this.extend = domain;
- getCOSDictionary().setItem(COSName.EXTEND, newExtend);
+ extend = newExtend;
+ if (newExtend == null)
+ {
+ getCOSDictionary().removeItem(COSName.EXTEND);
+ }
+ else
+ {
+ getCOSDictionary().setItem(COSName.EXTEND, newExtend);
+ }
}
/**
@@ -102,8 +109,15 @@ public class PDShadingType2 extends PDSh
*/
public void setDomain(COSArray newDomain)
{
- this.domain = newDomain;
- getCOSDictionary().setItem(COSName.DOMAIN, newDomain);
+ domain = newDomain;
+ if (newDomain == null)
+ {
+ getCOSDictionary().removeItem(COSName.DOMAIN);
+ }
+ else
+ {
+ getCOSDictionary().setItem(COSName.DOMAIN, newDomain);
+ }
}
/**
@@ -127,8 +141,15 @@ public class PDShadingType2 extends PDSh
*/
public void setCoords(COSArray newCoords)
{
- this.coords = newCoords;
- getCOSDictionary().setItem(COSName.COORDS, newCoords);
+ coords = newCoords;
+ if (newCoords == null)
+ {
+ getCOSDictionary().removeItem(COSName.COORDS);
+ }
+ else
+ {
+ getCOSDictionary().setItem(COSName.COORDS, newCoords);
+ }
}
/**
@@ -138,8 +159,15 @@ public class PDShadingType2 extends PDSh
*/
public void setFunction(PDFunction newFunction)
{
- this.function = newFunction;
- getCOSDictionary().setItem(COSName.FUNCTION, newFunction);
+ function = newFunction;
+ if (newFunction == null)
+ {
+ getCOSDictionary().removeItem(COSName.FUNCTION);
+ }
+ else
+ {
+ getCOSDictionary().setItem(COSName.FUNCTION, newFunction);
+ }
}
/**
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/SHFill.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/SHFill.java?rev=1235384&r1=1235383&r2=1235384&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/SHFill.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/SHFill.java Tue Jan 24 18:07:11 2012
@@ -16,7 +16,6 @@
*/
package org.apache.pdfbox.util.operator.pagedrawer;
-import java.awt.geom.GeneralPath;
import java.io.IOException;
import java.util.List;
@@ -41,10 +40,10 @@ public class SHFill extends OperatorProc
/**
* Log instance.
*/
- private static final Log log = LogFactory.getLog(SHFill.class);
+ private static final Log LOG = LogFactory.getLog(SHFill.class);
/**
- * process : sh : shade fill the path or clipping area.
+ * process : sh : shade fill the clipping area.
* @param operator The operator that is being executed.
* @param arguments List
*
@@ -55,12 +54,11 @@ public class SHFill extends OperatorProc
try
{
PageDrawer drawer = (PageDrawer)context;
- drawer.SHFill((COSName)(arguments.get(0)));
-
+ drawer.shFill((COSName)(arguments.get(0)));
}
catch (Exception e)
{
- log.warn(e, e);
+ LOG.warn(e, e);
}
}
}