From 6025b6016517c6d898d8957d1d7e03ba71431912 Mon Sep 17 00:00:00 2001 From: tknall Date: Fri, 1 Dec 2006 12:20:24 +0000 Subject: Initial import of release 2.2. git-svn-id: https://joinup.ec.europa.eu/svn/pdf-as/trunk@4 7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c --- .../pdfbox/pdmodel/graphics/PDGraphicsState.java | 438 +++++++++++++++++++++ 1 file changed, 438 insertions(+) create mode 100644 src/main/java/org/pdfbox/pdmodel/graphics/PDGraphicsState.java (limited to 'src/main/java/org/pdfbox/pdmodel/graphics/PDGraphicsState.java') diff --git a/src/main/java/org/pdfbox/pdmodel/graphics/PDGraphicsState.java b/src/main/java/org/pdfbox/pdmodel/graphics/PDGraphicsState.java new file mode 100644 index 0000000..4115198 --- /dev/null +++ b/src/main/java/org/pdfbox/pdmodel/graphics/PDGraphicsState.java @@ -0,0 +1,438 @@ +/** + * Copyright (c) 2003, www.pdfbox.org + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. Neither the name of pdfbox; nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * http://www.pdfbox.org + * + */ +package org.pdfbox.pdmodel.graphics; + +import org.pdfbox.util.Matrix; + +import org.pdfbox.pdmodel.text.PDTextState; + +import org.pdfbox.pdmodel.graphics.color.PDColorSpaceInstance; + +/** + * This class will hold the current state of the graphics parameters when executing a + * content stream. + * + * @author Ben Litchfield (ben@csh.rit.edu) + * @version $Revision: 1.3 $ + */ +public class PDGraphicsState implements Cloneable +{ + private Matrix currentTransformationMatrix = new Matrix(); + + //Here are some attributes of the Graphics state, but have not been created yet. + // + //clippingPath + private PDColorSpaceInstance strokingColorSpace = new PDColorSpaceInstance(); + private PDColorSpaceInstance nonStrokingColorSpace = new PDColorSpaceInstance(); + private PDTextState textState = new PDTextState(); + private double lineWidth = 0; + private int lineCap = 0; + private int lineJoin = 0; + private double miterLimit = 0; + private PDLineDashPattern lineDashPattern; + private String renderingIntent; + private boolean strokeAdjustment = false; + //blend mode + //soft mask + private double alphaConstants = 0; + private boolean alphaSource = false; + + //DEVICE DEPENDENT parameters + private boolean overprint = false; + private double overprintMode = 0; + //black generation + //undercolor removal + //transfer + //halftone + private double flatness = 1.0; + private double smoothness = 0; + + /** + * Get the value of the CTM. + * + * @return The current transformation matrix. + */ + public Matrix getCurrentTransformationMatrix() + { + return currentTransformationMatrix; + } + + /** + * Set the value of the CTM. + * + * @param value The current transformation matrix. + */ + public void setCurrentTransformationMatrix(Matrix value) + { + currentTransformationMatrix = value; + } + + /** + * Get the value of the line width. + * + * @return The current line width. + */ + public double getLineWidth() + { + return lineWidth; + } + + /** + * set the value of the line width. + * + * @param value The current line width. + */ + public void setLineWidth(double value) + { + lineWidth = value; + } + + /** + * Get the value of the line cap. + * + * @return The current line cap. + */ + public int getLineCap() + { + return lineCap; + } + + /** + * set the value of the line cap. + * + * @param value The current line cap. + */ + public void setLineCap(int value) + { + lineCap = value; + } + + /** + * Get the value of the line join. + * + * @return The current line join value. + */ + public int getLineJoin() + { + return lineJoin; + } + + /** + * Get the value of the line join. + * + * @param value The current line join + */ + public void setLineJoin(int value) + { + lineJoin = value; + } + + /** + * Get the value of the miter limit. + * + * @return The current miter limit. + */ + public double getMiterLimit() + { + return miterLimit; + } + + /** + * set the value of the miter limit. + * + * @param value The current miter limit. + */ + public void setMiterLimit(double value) + { + miterLimit = value; + } + + /** + * Get the value of the stroke adjustment parameter. + * + * @return The current stroke adjustment. + */ + public boolean isStrokeAdjustment() + { + return strokeAdjustment; + } + + /** + * set the value of the stroke adjustment. + * + * @param value The value of the stroke adjustment parameter. + */ + public void setStrokeAdjustment(boolean value) + { + strokeAdjustment = value; + } + + /** + * Get the value of the alpha constants property. + * + * @return The value of the alpha constants parameter. + */ + public double getAlphaConstants() + { + return alphaConstants; + } + + /** + * set the value of the alpha constants property. + * + * @param value The value of the alpha constants parameter. + */ + public void setAlphaConstants(double value) + { + alphaConstants = value; + } + + /** + * get the value of the alpha source property. + * + * @return The value of the alpha source parameter. + */ + public boolean isAlphaSource() + { + return alphaSource; + } + + /** + * set the value of the alpha source property. + * + * @param value The value of the alpha source parameter. + */ + public void setAlphaSource(boolean value) + { + alphaSource = value; + } + + /** + * get the value of the overprint property. + * + * @return The value of the overprint parameter. + */ + public boolean isOverprint() + { + return overprint; + } + + /** + * set the value of the overprint property. + * + * @param value The value of the overprint parameter. + */ + public void setOverprint(boolean value) + { + overprint = value; + } + + /** + * get the value of the overprint mode property. + * + * @return The value of the overprint mode parameter. + */ + public double getOverprintMode() + { + return overprintMode; + } + + /** + * set the value of the overprint mode property. + * + * @param value The value of the overprint mode parameter. + */ + public void setOverprintMode(double value) + { + overprintMode = value; + } + + /** + * get the value of the flatness property. + * + * @return The value of the flatness parameter. + */ + public double getFlatness() + { + return flatness; + } + + /** + * set the value of the flatness property. + * + * @param value The value of the flatness parameter. + */ + public void setFlatness(double value) + { + flatness = value; + } + + /** + * get the value of the smoothness property. + * + * @return The value of the smoothness parameter. + */ + public double getSmoothness() + { + return smoothness; + } + + /** + * set the value of the smoothness property. + * + * @param value The value of the smoothness parameter. + */ + public void setSmoothness(double value) + { + smoothness = value; + } + + /** + * This will get the graphics text state. + * + * @return The graphics text state. + */ + public PDTextState getTextState() + { + return textState; + } + + /** + * This will set the graphics text state. + * + * @param value The graphics text state. + */ + public void setTextState(PDTextState value) + { + textState = value; + } + + /** + * This will get the current line dash pattern. + * + * @return The line dash pattern. + */ + public PDLineDashPattern getLineDashPattern() + { + return lineDashPattern; + } + + /** + * This will set the current line dash pattern. + * + * @param value The new line dash pattern. + */ + public void setLineDashPattern(PDLineDashPattern value) + { + lineDashPattern = value; + } + + /** + * This will get the rendering intent. + * + * @see PDExtendedGraphicsState + * + * @return The rendering intent + */ + public String getRenderingIntent() + { + return renderingIntent; + } + + /** + * This will set the rendering intent. + * + * @param value The new rendering intent. + */ + public void setRenderingIntent(String value) + { + renderingIntent = value; + } + + /** + * @see Object#clone() + */ + public Object clone() + { + PDGraphicsState clone = null; + try + { + clone = (PDGraphicsState)super.clone(); + clone.setTextState( (PDTextState)textState.clone() ); + clone.setCurrentTransformationMatrix( currentTransformationMatrix.copy() ); + } + catch( CloneNotSupportedException e ) + { + e.printStackTrace(); + } + return clone; + } + + /** + * This will get the current stroking colorspace. + * + * @return The current stroking colorspace. + */ + public PDColorSpaceInstance getStrokingColorSpace() + { + return strokingColorSpace; + } + + /** + * This will set the current stroking colorspace. + * + * @param value The new stroking colorspace instance. + */ + public void setStrokingColorSpace(PDColorSpaceInstance value) + { + strokingColorSpace = value; + } + + /** + * This will get the nonstroking color space instance. + * + * @return The colorspace instance. + */ + public PDColorSpaceInstance getNonStrokingColorSpace() + { + return nonStrokingColorSpace; + } + + /** + * This will set the non-stroking colorspace instance. + * + * @param value The non-stroking colorspace instance. + */ + public void setNonStrokingColorSpace(PDColorSpaceInstance value) + { + nonStrokingColorSpace = value; + } +} \ No newline at end of file -- cgit v1.2.3