Class 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 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.