org.apache.fop.pdf

## Class PDFShading

- java.lang.Object
- - org.apache.fop.pdf.PDFObject
  - - org.apache.fop.pdf.PDFShading

- All 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

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected String` | `shadingName` The name of the Shading e.g.

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

      `log`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PDFShading(int shadingType, PDFDeviceColorSpace colorSpace, List coords, PDFFunction pdfFunction)` Constructor for Type 2 and 3

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected boolean` | `contentEquals(PDFObject obj)` Check if the other PDFObject has the same content as the current object.
    `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, formatObject, getChildren, getDocument, getDocumentSafely, getGeneration, getObjectID, getObjectNumber, getParent, hasObjectNumber, makeReference, output, outputInline, referencePDF, setDocument, setObjectNumber, setObjectNumber, setObjectNumber, setParent, toPDF`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### shadingName

          protected String shadingName

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

  - ### Constructor Detail

    - #### PDFShading

          public PDFShading(int shadingType,
                            PDFDeviceColorSpace colorSpace,
                            List coords,
                            PDFFunction pdfFunction)

      Constructor for Type 2 and 3
      Parameters:
        `shadingType` - 2 or 3 for axial or radial shading
        `colorSpace` - "DeviceRGB" or similar.
        `coords` - List of four (type 2) or 6 (type 3) Double
        `pdfFunction` - the Stitching (PDFfunction type 3) function, even if it's stitching a single function

  - ### Method Detail

    - #### 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 class `PDFObject`
      Returns:
        the PDF string.

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

Copyright © 2023 Apache Software Foundation. All rights reserved.