org.apache.fop.pdf

Class PDFShading

Implemented Interfaces:
PDFWritable

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.

Field Summary

protected boolean
antiAlias
Optional: A flag whether or not to filter the shading function to prevent aliasing artifacts.
protected List
bBox
Optional: A List specifying the clipping rectangle
protected List
background
The background color.
protected int
bitsPerComponent
Required for Type 4,5,6, and 7: Specifies the number of bits used to represent each color coordinate.
protected int
bitsPerCoordinate
Required for Type 4,5,6, and 7: Specifies the number of bits used to represent each vertex coordinate.
protected int
bitsPerFlag
Required for Type 4,5,6, and 7: Specifies the number of bits used to represent the edge flag for each vertex.
protected PDFDeviceColorSpace
colorSpace
A ColorSpace representing the colorspace.
protected List
coords
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.
protected List
decode
Required for Type 4,5,6, and 7: Array of Doubles which specifies how to decode coordinate and color component values.
protected List
domain
Optional for Type 1: Array of four numbers, xmin, xmax, ymin, ymax.
protected List
extend
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.
protected PDFFunction
function
Required for Type 1, 2, and 3: The object of the color mapping function (usually type 2 or 3).
protected List
matrix
Optional for Type 1: A transformation matrix
protected String
shadingName
The name of the Shading e.g.
protected int
shadingType
Required: The Type of shading (1,2,3,4,5,6,7)
protected int
verticesPerRow
Required for Type 5:The number of vertices in each "row" of the lattice; it must be greater than or equal to 2.

Fields inherited from class org.apache.fop.pdf.PDFObject

DATE_FORMAT, log

Constructor Summary

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

Method Summary

boolean
equals(Object obj)
Check if this shading is equal to another shading.
String
getName()
Get the name of this shading.
void
setName(String name)
Sets the name of the shading
String
toPDFString()
represent as PDF.

Methods inherited from class org.apache.fop.pdf.PDFObject

encode, encodeBinaryToHexString, encodeString, encodeText, formatDateTime, formatDateTime, formatObject, getDocument, getDocumentSafely, getGeneration, getObjectID, getObjectNumber, getParent, hasObjectNumber, makeReference, output, outputInline, referencePDF, setDocument, setObjectNumber, setParent, toPDF, toPDFString

Field Details

antiAlias

protected boolean antiAlias
Optional: A flag whether or not to filter the shading function to prevent aliasing artifacts. Default is false.

bBox

protected List bBox
Optional: A List specifying the clipping rectangle

background

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

bitsPerComponent

protected int bitsPerComponent
Required for Type 4,5,6, and 7: Specifies the number of bits used to represent each color coordinate. Allowed to be 1,2,4,8,12, or 16

bitsPerCoordinate

protected int bitsPerCoordinate
Required for Type 4,5,6, and 7: Specifies the number of bits used to represent each vertex coordinate. Allowed to be 1,2,4,8,12,16,24, or 32.

bitsPerFlag

protected int bitsPerFlag
Required for Type 4,5,6, and 7: Specifies the number of bits used to represent the edge flag for each vertex. Allowed to be 2,4,or 8, while the Edge flag itself is allowed to be 0,1 or 2.

colorSpace

protected PDFDeviceColorSpace colorSpace
A ColorSpace representing the colorspace. "DeviceRGB" is an example.

coords

protected List coords
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.

decode

protected List decode
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

domain

protected List domain
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.

extend

protected List extend
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.

function

protected PDFFunction function
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.

matrix

protected List matrix
Optional for Type 1: A transformation matrix

shadingName

protected String shadingName
The name of the Shading e.g. "Shading1"

shadingType

protected int shadingType
Required: The Type of shading (1,2,3,4,5,6,7)

verticesPerRow

protected int verticesPerRow
Required for Type 5:The number of vertices in each "row" of the lattice; it must be greater than or equal to 2.

Constructor Details

PDFShading

public PDFShading(int theShadingType,
                  PDFDeviceColorSpace theColorSpace,
                  List theBackground,
                  List theBBox,
                  boolean theAntiAlias,
                  List theDomain,
                  List theMatrix,
                  PDFFunction theFunction)
Constructor for type function based shading
Parameters:
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 - List 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 - List 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 theShadingType,
                  PDFDeviceColorSpace theColorSpace,
                  List theBackground,
                  List theBBox,
                  boolean theAntiAlias,
                  List theCoords,
                  List theDomain,
                  PDFFunction theFunction,
                  List theExtend)
Constructor for Type 2 and 3
Parameters:
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 - List 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 - List of four (type 2) or 6 (type 3) Double
theDomain - List of Doubles specifying the domain
theFunction - the Stitching (PDFfunction type 3) function, even if it's stitching a single function
theExtend - List of Booleans of whether to extend the start and end colors past the start and end points The default is [false, false]

PDFShading

public PDFShading(int theShadingType,
                  PDFDeviceColorSpace theColorSpace,
                  List theBackground,
                  List theBBox,
                  boolean theAntiAlias,
                  int theBitsPerCoordinate,
                  int theBitsPerComponent,
                  List theDecode,
                  int theVerticesPerRow,
                  PDFFunction theFunction)
Constructor for type 5
Parameters:
theShadingType - 5 for lattice-Form Gouraud shaded-triangle mesh
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 - List 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 - List 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

PDFShading

public PDFShading(int theShadingType,
                  PDFDeviceColorSpace theColorSpace,
                  List theBackground,
                  List theBBox,
                  boolean theAntiAlias,
                  int theBitsPerCoordinate,
                  int theBitsPerComponent,
                  int theBitsPerFlag,
                  List theDecode,
                  PDFFunction theFunction)
Constructor for Type 4,6, or 7
Parameters:
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.
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 - List 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 - List of Doubles see PDF 1.3 spec pages 303 to 312.
theFunction - the PDFFunction

Method Details

equals

public boolean equals(Object obj)
Check if this shading is equal to another shading. This is used to check if a shading already exists.
Parameters:
obj - the object to compare against
Returns:
true if the shadings are equal

getName

public String getName()
Get the name of this shading.
Returns:
the name of the shading

setName

public void setName(String name)
Sets the name of the shading
Parameters:
name - the name of the shading pattern. Can be anything without spaces. "Shading1" or "Sh1" are good examples.

toPDFString

public String toPDFString()
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.
Overrides:
toPDFString in interface PDFObject
Returns:
the PDF string.

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