fop 2.0

org.apache.fop.pdf
Class PDFPattern

java.lang.Object
  extended by org.apache.fop.pdf.PDFObject
      extended by org.apache.fop.pdf.PDFPathPaint
          extended by org.apache.fop.pdf.PDFPattern
All Implemented Interfaces:
PDFWritable

public class PDFPattern
extends PDFPathPaint

class representing a PDF Function. PDF Functions represent parameterized mathematical formulas and sampled representations with arbitrary resolution. Functions are used in two areas: device-dependent rasterization information for halftoning and transfer functions, and color specification for smooth shading (a PDF 1.3 feature). All PDF Functions have a FunctionType (0,2,3, or 4), a Domain, and a Range.


Field Summary
protected  java.util.List bBox
          List of Doubles representing the Bounding box rectangle
protected  java.lang.StringBuffer extGState
          TODO use PDFGState String representing the extended Graphics state.
protected  java.util.List matrix
          List of Doubles representing the Transformation matrix.
protected  int paintType
          1 for colored pattern, 2 for uncolored
protected  java.lang.StringBuffer patternDataStream
          The stream of a pattern
protected  java.lang.String patternName
          The name of the pattern such as "Pa1" or "Pattern1"
protected  int patternType
          Either one (1) for tiling, or two (2) for shading.
protected  PDFResources resources
          The resources associated with this pattern
protected  PDFShading shading
          The Shading object comprising the Type 2 pattern
protected  int tilingType
          1 for constant spacing, 2 for no distortion, and 3 for fast rendering
protected  double xStep
          Horizontal spacing
protected  java.util.List xUID
          List of Integers represetning the Extended unique Identifier
protected  double yStep
          Vertical spacing
 
Fields inherited from class org.apache.fop.pdf.PDFPathPaint
colorSpace
 
Fields inherited from class org.apache.fop.pdf.PDFObject
log
 
Constructor Summary
PDFPattern(int thePatternType, PDFShading shading, java.util.List theXUID, java.lang.StringBuffer theExtGState, java.util.List theMatrix)
          Create a type 2 pattern (smooth shading)
PDFPattern(PDFResources theResources, int thePatternType, int thePaintType, int theTilingType, java.util.List theBBox, double theXStep, double theYStep, java.util.List theMatrix, java.util.List theXUID, java.lang.StringBuffer thePatternDataStream)
          Create a tiling pattern (type 1).
 
Method Summary
protected  boolean contentEquals(PDFObject obj)
          Check if the other PDFObject has the same content as the current object.
 java.lang.String getColorSpaceOut(boolean fillNotStroke)
          Get the PDF command for setting to this pattern.
 java.lang.String getName()
          Get the name of the pattern
 int output(java.io.OutputStream stream)
          represent as PDF.
 void setName(java.lang.String name)
          Sets the name of the pattern.
 byte[] toPDF()
          Output PDF bytes, not used.
 
Methods inherited from class org.apache.fop.pdf.PDFPathPaint
getColorSpace, setColorSpace
 
Methods inherited from class org.apache.fop.pdf.PDFObject
encode, encodeBinaryToHexString, encodeString, encodeText, formatObject, getChildren, getDocument, getDocumentSafely, getGeneration, getObjectID, getObjectNumber, getParent, hasObjectNumber, makeReference, outputInline, referencePDF, setDocument, setObjectNumber, setObjectNumber, setObjectNumber, setParent, toPDFString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

resources

protected PDFResources resources
The resources associated with this pattern


patternType

protected int patternType
Either one (1) for tiling, or two (2) for shading.


patternName

protected java.lang.String patternName
The name of the pattern such as "Pa1" or "Pattern1"


paintType

protected int paintType
1 for colored pattern, 2 for uncolored


tilingType

protected int tilingType
1 for constant spacing, 2 for no distortion, and 3 for fast rendering


bBox

protected java.util.List bBox
List of Doubles representing the Bounding box rectangle


xStep

protected double xStep
Horizontal spacing


yStep

protected double yStep
Vertical spacing


shading

protected PDFShading shading
The Shading object comprising the Type 2 pattern


xUID

protected java.util.List xUID
List of Integers represetning the Extended unique Identifier


extGState

protected java.lang.StringBuffer extGState
TODO use PDFGState String representing the extended Graphics state. Probably will never be used like this.


matrix

protected java.util.List matrix
List of Doubles representing the Transformation matrix.


patternDataStream

protected java.lang.StringBuffer patternDataStream
The stream of a pattern

Constructor Detail

PDFPattern

public PDFPattern(PDFResources theResources,
                  int thePatternType,
                  int thePaintType,
                  int theTilingType,
                  java.util.List theBBox,
                  double theXStep,
                  double theYStep,
                  java.util.List theMatrix,
                  java.util.List theXUID,
                  java.lang.StringBuffer thePatternDataStream)
Create a tiling pattern (type 1).

Parameters:
theResources - the resources associated with this pattern
thePatternType - the type of pattern, which is 1 for tiling.
thePaintType - 1 or 2, colored or uncolored.
theTilingType - 1, 2, or 3, constant spacing, no distortion, or faster tiling
theBBox - List of Doubles: The pattern cell bounding box
theXStep - horizontal spacing
theYStep - vertical spacing
theMatrix - Optional List of Doubles transformation matrix
theXUID - Optional vector of Integers that uniquely identify the pattern
thePatternDataStream - The stream of pattern data to be tiled.

PDFPattern

public PDFPattern(int thePatternType,
                  PDFShading shading,
                  java.util.List theXUID,
                  java.lang.StringBuffer theExtGState,
                  java.util.List theMatrix)
Create a type 2 pattern (smooth shading)

Parameters:
thePatternType - the type of the pattern, which is 2, smooth shading
shading - the Shading object that comprises this pattern
theXUID - optional:the extended unique Identifier if used.
theExtGState - optional: the extended graphics state, if used.
theMatrix - Optional:List of Doubles that specify the matrix.
Method Detail

getName

public java.lang.String getName()
Get the name of the pattern

Returns:
String representing the name of the pattern.

setName

public void setName(java.lang.String name)
Sets the name of the pattern.

Parameters:
name - the name of the pattern. Can be anything without spaces. "Pattern1" or "Pa1" are good examples.

getColorSpaceOut

public java.lang.String getColorSpaceOut(boolean fillNotStroke)
Get the PDF command for setting to this pattern.

Overrides:
getColorSpaceOut in class PDFPathPaint
Parameters:
fillNotStroke - if true fill otherwise stroke
Returns:
the PDF string for setting the pattern

output

public int output(java.io.OutputStream stream)
           throws java.io.IOException
represent as PDF. Whatever the FunctionType is, the correct representation spits out. The sets of required and optional attributes are different for each type, but if a required attribute's object was constructed as null, then no error is raised. Instead, the malformed PDF that was requested by the construction is dutifully output. This policy should be reviewed.

Overrides:
output in class PDFObject
Parameters:
stream - the stream to write to
Returns:
the PDF string.
Throws:
java.io.IOException - if there is an error writing to the stream

toPDF

public byte[] toPDF()
Output PDF bytes, not used.

Overrides:
toPDF in class PDFObject
Returns:
returns null

contentEquals

protected boolean contentEquals(PDFObject obj)
Check if the other PDFObject has the same content as the current object.

Note: This function has a contract which is less binding than Object.equals(Object). Whereas equals would require all values to be identical, this method is not required to check everything. In the case of PDFObjects, this means that the overriding function does not have to check for PDFObject.getObjectID().

Overrides:
contentEquals in class PDFObject
Parameters:
obj - object to compare to.
Returns:
true if the other object has the same content.

fop 2.0

Copyright 1999-2015 The Apache Software Foundation. All Rights Reserved.