Class PDFShader

java.lang.Object
com.sun.pdfview.pattern.PDFShader
Direct Known Subclasses:
ShaderType2

public abstract class PDFShader extends Object

A PDFShader fills a given region with a shading, such as a gradient.

Shading Dictionaries (section 4.6)
A shading dictionary specifies details of a particular gradient fill, including the type of shading to be used, the geometry of the area to be shaded, and the geometry of the gradient fill. Various shading types are available, depending on the value of the dictionary’s ShadingType entry:

  • Function-based shadings (type 1) define the color of every point in the domain using a mathematical function (not necessarily smooth or continuous).
  • Axial shadings (type 2) define a color blend along a line between two points, optionally extended beyond the boundary points by continuing the boundary colors.
  • Radial shadings (type 3) define a blend between two circles, optionally extended beyond the boundary circles by continuing the boundary colors. This type of shading is commonly used to represent three-dimensional spheres and cones.
  • Free-form Gouraud-shaded triangle meshes (type 4) define a common construct used by many three-dimensional applications to represent complex colored and shaded shapes. Vertices are specified in free-form geometry.
  • Lattice-form Gouraud-shaded triangle meshes (type 5) are based on the same geometrical construct as type 4 but with vertices specified as a pseudorectangular lattice.
  • Coons patch meshes (type 6) construct a shading from one or more color patches, each bounded by four cubic Bézier curves.
  • Tensor-product patch meshes (type 7) are similar to type 6 but with additional control points in each patch, affording greater control over color mapping.
  • Table 4.28 shows the entries that all shading dictionaries share in common; entries specific to particular shading types are described in the relevant sections below.

    • Field Details

      • FUNCTION_SHADING

        public static final int FUNCTION_SHADING
        See Also:
      • AXIAL_SHADING

        public static final int AXIAL_SHADING
        See Also:
      • RADIAL_SHADING

        public static final int RADIAL_SHADING
        See Also:
      • FREE_FORM_SHADING

        public static final int FREE_FORM_SHADING
        See Also:
      • LATTICE_SHADING

        public static final int LATTICE_SHADING
        See Also:
      • COONS_PATCH_MESH_SHADING

        public static final int COONS_PATCH_MESH_SHADING
        See Also:
      • TENSOR_PRODUCTS_MESH_SHADING

        public static final int TENSOR_PRODUCTS_MESH_SHADING
        See Also:
      • type

        private int type
        the type of the shading (1 through 7)
      • colorSpace

        private PDFColorSpace colorSpace
        the colorspace
      • background

        private PDFPaint background
        the background color
      • bbox

        private Rectangle2D bbox
        the bounding box of the pattern
    • Constructor Details

      • PDFShader

        protected PDFShader(int type)
        Creates a new instance of PDFShader
    • Method Details

      • getShader

        public static PDFShader getShader(PDFObject shaderObj, Map resources) throws IOException
        Parse a pdf shader into a shader object
        Throws:
        IOException
      • getType

        public int getType()
        Get the type
      • getColorSpace

        public PDFColorSpace getColorSpace()
        Get the color space
      • setColorSpace

        protected void setColorSpace(PDFColorSpace colorSpace)
        Set the color space
      • getBackground

        public PDFPaint getBackground()
        Get the background color
      • setBackground

        protected void setBackground(PDFPaint background)
        Set the background color
      • getBBox

        public Rectangle2D getBBox()
        Get the bounding box
      • setBBox

        protected void setBBox(Rectangle2D bbox)
        Set the bounding box
      • parse

        public abstract void parse(PDFObject shareObj) throws IOException
        Parse the shader-specific data
        Throws:
        IOException
      • getPaint

        public abstract PDFPaint getPaint()
        Returns paint that represents the selected shader