org.apache.fop.pdf
Class PDFShading

org.apache.fop.pdf.PDFObject
  |
  +--org.apache.fop.pdf.PDFShading

public class PDFShading
extends PDFObject

class representing a PDF Smooth Shading object. 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 shadingType (0,2,3, or 4), a Domain, and a Range.


Constructor Summary
PDFShading(int theNumber, String theShadingName, int theShadingType, ColorSpace theColorSpace, Vector theBackground, Vector theBBox, boolean theAntiAlias, Vector theDomain, Vector theMatrix, PDFFunction theFunction)
          Constructor for type function based shading
PDFShading(int theNumber, String theShadingName, int theShadingType, ColorSpace theColorSpace, Vector theBackground, Vector theBBox, boolean theAntiAlias, Vector theCoords, Vector theDomain, PDFFunction theFunction, Vector theExtend)
          Constructor for Type 2 and 3
PDFShading(int theNumber, String theShadingName, int theShadingType, ColorSpace theColorSpace, Vector theBackground, Vector theBBox, boolean theAntiAlias, int theBitsPerCoordinate, int theBitsPerComponent, int theBitsPerFlag, Vector theDecode, PDFFunction theFunction)
          Constructor for Type 4,6, or 7
PDFShading(int theNumber, String theShadingName, int theShadingType, ColorSpace theColorSpace, Vector theBackground, Vector theBBox, boolean theAntiAlias, int theBitsPerCoordinate, int theBitsPerComponent, Vector theDecode, int theVerticesPerRow, PDFFunction theFunction)
          Constructor for type 5

Method Summary
 StringgetName()
           
 byte[]toPDF()
          represent as PDF.

Methods inherited from class org.apache.fop.pdf.PDFObject
getNumber, referencePDF

Constructor Detail

PDFShading

public PDFShading(int theNumber, String theShadingName, int theShadingType, ColorSpace theColorSpace, Vector theBackground, Vector theBBox, boolean theAntiAlias, Vector theDomain, Vector theMatrix, PDFFunction theFunction)
Constructor for type function based shading
Parameters:
theNumber - The object number of this PDF object
theShadingName - The name of the shading pattern. Can be anything without spaces. "Shading1" or "Sh1" are good examples.
theShadingType - The type of shading object, which should be 1 for function based shading.
theColorSpace - The colorspace is 'DeviceRGB' or something similar.
theBackground - An array of color components appropriate to the colorspace key specifying a single color value. This key is used by the f operator buy ignored by the sh operator.
theBBox - Vector of double's representing a rectangle in the coordinate space that is current at the time of shading is imaged. Temporary clipping boundary.
theAntiAlias - Whether or not to anti-alias.
theDomain - Optional vector of Doubles specifying the domain.
theMatrix - Vector of Doubles specifying the matrix. If it's a pattern, then the matrix maps it to pattern space. If it's a shading, then it maps it to current user space. It's optional, the default is the identity matrix
theFunction - The PDF Function that maps an (x,y) location to a color

PDFShading

public PDFShading(int theNumber, String theShadingName, int theShadingType, ColorSpace theColorSpace, Vector theBackground, Vector theBBox, boolean theAntiAlias, Vector theCoords, Vector theDomain, PDFFunction theFunction, Vector theExtend)
Constructor for Type 2 and 3
Parameters:
theNumber - The object number of this PDF object.
theShadingName - The name of the shading pattern. Can be anything without spaces. "Shading1" or "Sh1" are good examples.
theShadingType - 2 or 3 for axial or radial shading
theColorSpace - "DeviceRGB" or similar.
theBackground - theBackground An array of color components appropriate to the colorspace key specifying a single color value. This key is used by the f operator buy ignored by the sh operator.
theBBox - Vector of double's representing a rectangle in the coordinate space that is current at the time of shading is imaged. Temporary clipping boundary.
theAntiAlias - Default is false
theCoords - Vector of four (type 2) or 6 (type 3) Double
theDomain - Vector of Doubles specifying the domain
theFunction - the Stitching (PDFfunction type 3) function, even if it's stitching a single function
theExtend - Vector of Booleans of whether to extend teh start and end colors past the start and end points The default is [false, false]

PDFShading

public PDFShading(int theNumber, String theShadingName, int theShadingType, ColorSpace theColorSpace, Vector theBackground, Vector theBBox, boolean theAntiAlias, int theBitsPerCoordinate, int theBitsPerComponent, int theBitsPerFlag, Vector theDecode, PDFFunction theFunction)
Constructor for Type 4,6, or 7
Parameters:
theNumber - The object number of this PDF object.
theShadingType - 4, 6, or 7 depending on whether it's Free-form gouraud-shaded triangle meshes, coons patch meshes, or tensor product patch meshes, respectively.
theShadingName - The name of the shading pattern. Can be anything without spaces. "Shading1" or "Sh1" are good examples.
theColorSpace - "DeviceRGB" or similar.
theBackground - theBackground An array of color components appropriate to the colorspace key specifying a single color value. This key is used by the f operator buy ignored by the sh operator.
theBBox - Vector of double's representing a rectangle in the coordinate space that is current at the time of shading is imaged. Temporary clipping boundary.
theAntiAlias - Default is false
theBitsPerCoordinate - 1,2,4,8,12,16,24 or 32.
theBitsPerComponent - 1,2,4,8,12, and 16
theBitsPerFlag - 2,4,8.
theDecode - Vector of Doubles see PDF 1.3 spec pages 303 to 312.
theFunction - the PDFFunction

PDFShading

public PDFShading(int theNumber, String theShadingName, int theShadingType, ColorSpace theColorSpace, Vector theBackground, Vector theBBox, boolean theAntiAlias, int theBitsPerCoordinate, int theBitsPerComponent, Vector theDecode, int theVerticesPerRow, PDFFunction theFunction)
Constructor for type 5
Parameters:
theShadingType - 5 for lattice-Form Gouraud shaded-triangle mesh
theShadingName - The name of the shading pattern. Can be anything without spaces. "Shading1" or "Sh1" are good examples.
theColorSpace - "DeviceRGB" or similar.
theBackground - theBackground An array of color components appropriate to the colorspace key specifying a single color value. This key is used by the f operator buy ignored by the sh operator.
theBBox - Vector of double's representing a rectangle in the coordinate space that is current at the time of shading is imaged. Temporary clipping boundary.
theAntiAlias - Default is false
theBitsPerCoordinate - 1,2,4,8,12,16, 24, or 32
theBitsPerComponent - 1,2,4,8,12,24,32
theDecode - Vector of Doubles. See page 305 in PDF 1.3 spec.
theVerticesPerRow - number of vertices in each "row" of the lattice.
theFunction - The PDFFunction that's mapped on to this shape
theNumber - the object number of this PDF object.
Method Detail

getName

public String getName()

toPDF

public byte[] toPDF()
represent as PDF. Whatever the shadingType 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.
Returns: the PDF string.

Association Links

to Class java.lang.String

The name of the Shading e.g. "Shading1"

to Class org.apache.fop.datatypes.ColorSpace

A ColorSpace representing the colorspace. "DeviceRGB" is an example.

to Class java.util.Vector

The background color. Since shading is opaque, this is very rarely used.

to Class java.util.Vector

Optional: A Vector specifying the clipping rectangle

to Class java.util.Vector

Optional for Type 1: Array of four numbers, xmin, xmax, ymin, ymax. Default is [0 1 0 1] Optional for Type 2: An array of two numbers between which the blend varies between start and end points. Default is 0, 1. Optional for Type 3: An array of two numbers between which the blend varies between start and end points. Default is 0, 1.

to Class java.util.Vector

Optional for Type 1: A transformation matrix

to Class org.apache.fop.pdf.PDFFunction

Required for Type 1, 2, and 3: The object of the color mapping function (usually type 2 or 3). Optional for Type 4,5,6, and 7: When it's nearly the same thing.

to Class java.util.Vector

Required for Type 2: An Array of four numbers specifying the starting and ending coordinate pairs Required for Type 3: An Array of six numbers [x0,y0,r0,x1,y1,r1] specifying the centers and radii of the starting and ending circles.

to Class java.util.Vector

Required for Type 2+3: An Array of two boolean values specifying whether to extend the start and end colors past the start and end points, respectively. Default is false, false.

to Class java.util.Vector

Required for Type 4,5,6, and 7: Array of Doubles which specifies how to decode coordinate and color component values. Each type has a differing number of decode array members, so check the spec. Page 303 in PDF Spec 1.3

to Class org.apache.fop.pdf.PDFNumber