org.jfree.graphics2d.svg

## Class SVGHints

- java.lang.Object
- - org.jfree.graphics2d.svg.SVGHints

-     public final class SVGHints
      extends java.lang.Object

  Defines the rendering hints that can be used with the `SVGGraphics2D` class. The supported hints are:
  - `KEY_IMAGE_HANDLING` that controls how images are handled (embedded in the SVG, or referenced externally);
  - `KEY_IMAGE_HREF` that allows the caller to specify the image href attribute for the next image;
  - `KEY_TEXT_RENDERING` that allows configuration of the preferred value of the SVG `text-rendering` attribute in text elements;
  - `KEY_ELEMENT_ID` that allows the caller to specify the element ID for the next element;
  - `KEY_BEGIN_GROUP` tells the `SVGGraphics2D` instance to start a new group element with an id equal to the hint value (which must be an instance of String). Any other `Graphics2D` implementation will ignore this hint;
  - `KEY_END_GROUP` tells the `SVGGraphics2D` instance to end a group element. The hint value is ignored. The caller assumes responsibility for balancing the number of `KEY_BEGIN_GROUP` and `KEY_END_GROUP` hints. Any other `Graphics2D` implementation will ignore this hint.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `SVGHints.Key` A key for hints used by the `SVGGraphics2D` class.

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static SVGHints.Key` | `KEY_BEGIN_GROUP` Hint key that informs the `SVGGraphics2D` that the caller would like to begin a new group element.
    `static SVGHints.Key` | `KEY_DRAW_STRING_TYPE` The key for the hint that controls whether strings are rendered as characters or vector graphics (implemented using `TextLayout`).
    `static SVGHints.Key` | `KEY_ELEMENT_ID` Hint key to supply an element id for the next element generated.
    `static SVGHints.Key` | `KEY_ELEMENT_TITLE` Hint key that informs the `SVGGraphics2D` that the caller would like to add a title element to the output (with the hint value being a string containing the title text).
    `static SVGHints.Key` | `KEY_END_GROUP` Hint key that informs the `SVGGraphics2D` that the caller would like to close a previously opened group element.
    `static SVGHints.Key` | `KEY_IMAGE_HANDLING` The key for the hint that controls whether images are embedded in the SVG or referenced externally.
    `static SVGHints.Key` | `KEY_IMAGE_HREF` Hint key to supply string to be used as the href for an image that is referenced rather than embedded.
    `static SVGHints.Key` | `KEY_TEXT_RENDERING` The key for a hint that permits configuration of the text-rendering attribute in SVG text elements
    `static java.lang.Object` | `VALUE_DRAW_STRING_TYPE_STANDARD` Hint value for `KEY_DRAW_STRING_TYPE` to specify that strings should be written to the output using standard SVG text elements.
    `static java.lang.Object` | `VALUE_DRAW_STRING_TYPE_VECTOR` Hint value for `KEY_DRAW_STRING_TYPE` to say that strings should be written to the output using vector graphics primitives.
    `static java.lang.Object` | `VALUE_IMAGE_HANDLING_EMBED` Hint value for `KEY_IMAGE_HANDLING` to specify that images should be embedded in the SVG output using PNG data `Base64` encoded.
    `static java.lang.Object` | `VALUE_IMAGE_HANDLING_REFERENCE` Hint value for `KEY_IMAGE_HANDLING` to say that images should be referenced externally.
    `static java.lang.String` | `VALUE_TEXT_RENDERING_AUTO` Hint value for `KEY_TEXT_RENDERING` to set the `text-rendering` attribute in SVG text elements to 'auto'.
    `static java.lang.String` | `VALUE_TEXT_RENDERING_INHERIT` Hint value for `KEY_TEXT_RENDERING` to set the `text-rendering` attribute in SVG text elements to 'inherit'.
    `static java.lang.String` | `VALUE_TEXT_RENDERING_LEGIBILITY` Hint value for `KEY_TEXT_RENDERING` to set the `text-rendering` attribute in SVG text elements to 'optimizeLegibility'.
    `static java.lang.String` | `VALUE_TEXT_RENDERING_PRECISION` Hint value for `KEY_TEXT_RENDERING` to set the `text-rendering` attribute in SVG text elements to 'geometricPrecision'.
    `static java.lang.String` | `VALUE_TEXT_RENDERING_SPEED` Hint value for `KEY_TEXT_RENDERING` to set the `text-rendering` attribute in SVG text elements to 'optimizeSpeed'.

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static void` | `addBeginGroupKey(java.awt.RenderingHints.Key key)` Adds a key to the list of keys that are synonyms for `KEY_BEGIN_GROUP`.
    `static void` | `addElementTitleKey(java.awt.RenderingHints.Key key)` Adds a key to the list of keys that are synonyms for `KEY_ELEMENT_TITLE`.
    `static void` | `addEndGroupKey(java.awt.RenderingHints.Key key)` Adds a key to the list of keys that are synonyms for `KEY_END_GROUP`.
    `static void` | `clearBeginGroupKeys()` Clears the list of keys that are treated as synonyms for `KEY_BEGIN_GROUP`.
    `static void` | `clearElementTitleKeys()` Clears the list of keys that are treated as synonyms for `KEY_ELEMENT_TITLE`.
    `static void` | `clearEndGroupKeys()` Clears the list of keys that are treated as synonyms for `KEY_END_GROUP`.
    `static java.util.List<java.awt.RenderingHints.Key>` | `getBeginGroupKeys()` Creates and returns a list of keys that are synonymous with `KEY_BEGIN_GROUP`.
    `static java.util.List<java.awt.RenderingHints.Key>` | `getElementTitleKeys()` Creates and returns a list of keys that are synonymous with `KEY_ELEMENT_TITLE`.
    `static java.util.List<java.awt.RenderingHints.Key>` | `getEndGroupKeys()` Creates and returns a list of keys that are synonymous with `KEY_END_GROUP`.
    `static boolean` | `isBeginGroupKey(java.awt.RenderingHints.Key key)` Returns `true` if this key is equivalent to `KEY_BEGIN_GROUP`, and `false` otherwise.
    `static boolean` | `isElementTitleKey(java.awt.RenderingHints.Key key)` Returns `true` if this key is equivalent to `KEY_ELEMENT_TITLE`, and `false` otherwise.
    `static boolean` | `isEndGroupKey(java.awt.RenderingHints.Key key)` Returns `true` if this key is equivalent to `KEY_END_GROUP`, and `false` otherwise.
    `static void` | `removeBeginGroupKey(java.awt.RenderingHints.Key key)` Removes a key from the list of keys that are synonyms for `KEY_BEGIN_GROUP`.
    `static void` | `removeElementTitleKey(java.awt.RenderingHints.Key key)` Removes a key from the list of keys that are synonyms for `KEY_ELEMENT_TITLE`.
    `static void` | `removeEndGroupKey(java.awt.RenderingHints.Key key)` Removes a key from the list of keys that are synonyms for `KEY_END_GROUP`.

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

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

- - ### Field Detail

    - #### KEY_IMAGE_HANDLING

          public static final SVGHints.Key KEY_IMAGE_HANDLING

      The key for the hint that controls whether images are embedded in the SVG or referenced externally. Valid hint values are `VALUE_IMAGE_HANDLING_EMBED` and `VALUE_IMAGE_HANDLING_REFERENCE`.

    - #### VALUE_IMAGE_HANDLING_EMBED

          public static final java.lang.Object VALUE_IMAGE_HANDLING_EMBED

      Hint value for `KEY_IMAGE_HANDLING` to specify that images should be embedded in the SVG output using PNG data `Base64` encoded.

    - #### VALUE_IMAGE_HANDLING_REFERENCE

          public static final java.lang.Object VALUE_IMAGE_HANDLING_REFERENCE

      Hint value for `KEY_IMAGE_HANDLING` to say that images should be referenced externally.

    - #### KEY_TEXT_RENDERING

          public static final SVGHints.Key KEY_TEXT_RENDERING

      The key for a hint that permits configuration of the text-rendering attribute in SVG text elements

    - #### VALUE_TEXT_RENDERING_AUTO

          public static final java.lang.String VALUE_TEXT_RENDERING_AUTO

      Hint value for `KEY_TEXT_RENDERING` to set the `text-rendering` attribute in SVG text elements to 'auto'.
      See Also:
        Constant Field Values

    - #### VALUE_TEXT_RENDERING_SPEED

          public static final java.lang.String VALUE_TEXT_RENDERING_SPEED

      Hint value for `KEY_TEXT_RENDERING` to set the `text-rendering` attribute in SVG text elements to 'optimizeSpeed'.
      See Also:
        Constant Field Values

    - #### VALUE_TEXT_RENDERING_LEGIBILITY

          public static final java.lang.String VALUE_TEXT_RENDERING_LEGIBILITY

      Hint value for `KEY_TEXT_RENDERING` to set the `text-rendering` attribute in SVG text elements to 'optimizeLegibility'.
      See Also:
        Constant Field Values

    - #### VALUE_TEXT_RENDERING_PRECISION

          public static final java.lang.String VALUE_TEXT_RENDERING_PRECISION

      Hint value for `KEY_TEXT_RENDERING` to set the `text-rendering` attribute in SVG text elements to 'geometricPrecision'.
      See Also:
        Constant Field Values

    - #### VALUE_TEXT_RENDERING_INHERIT

          public static final java.lang.String VALUE_TEXT_RENDERING_INHERIT

      Hint value for `KEY_TEXT_RENDERING` to set the `text-rendering` attribute in SVG text elements to 'inherit'.
      See Also:
        Constant Field Values

    - #### KEY_IMAGE_HREF

          public static final SVGHints.Key KEY_IMAGE_HREF

      Hint key to supply string to be used as the href for an image that is referenced rather than embedded. The value associated with the key should be a string and will be used for the next image element written to the SVG output (and then the hint will be cleared).
      Since:
        1.5

    - #### KEY_ELEMENT_ID

          public static final SVGHints.Key KEY_ELEMENT_ID

      Hint key to supply an element id for the next element generated.
      Since:
        1.5

    - #### KEY_BEGIN_GROUP

          public static final SVGHints.Key KEY_BEGIN_GROUP

      Hint key that informs the `SVGGraphics2D` that the caller would like to begin a new group element. The hint value is the id for the new group. After opening the new group the hint is cleared and it is the caller's responsibility to close the group later using `KEY_END_GROUP`. Groups can be nested.
      Since:
        1.7

    - #### KEY_END_GROUP

          public static final SVGHints.Key KEY_END_GROUP

      Hint key that informs the `SVGGraphics2D` that the caller would like to close a previously opened group element. The hint value is ignored.
      Since:
        1.7

    - #### KEY_ELEMENT_TITLE

          public static final SVGHints.Key KEY_ELEMENT_TITLE

      Hint key that informs the `SVGGraphics2D` that the caller would like to add a title element to the output (with the hint value being a string containing the title text).
      Since:
        1.9

    - #### KEY_DRAW_STRING_TYPE

          public static final SVGHints.Key KEY_DRAW_STRING_TYPE

      The key for the hint that controls whether strings are rendered as characters or vector graphics (implemented using `TextLayout`). The latter will result in larger output files but avoids problems with fonts not being available for the viewer. Valid hint values are `VALUE_DRAW_STRING_TYPE_STANDARD` and `VALUE_DRAW_STRING_TYPE_VECTOR`.
      Since:
        2.0

    - #### VALUE_DRAW_STRING_TYPE_STANDARD

          public static final java.lang.Object VALUE_DRAW_STRING_TYPE_STANDARD

      Hint value for `KEY_DRAW_STRING_TYPE` to specify that strings should be written to the output using standard SVG text elements.
      Since:
        2.0

    - #### VALUE_DRAW_STRING_TYPE_VECTOR

          public static final java.lang.Object VALUE_DRAW_STRING_TYPE_VECTOR

      Hint value for `KEY_DRAW_STRING_TYPE` to say that strings should be written to the output using vector graphics primitives.
      Since:
        2.0

  - ### Method Detail

    - #### getBeginGroupKeys

          public static java.util.List<java.awt.RenderingHints.Key> getBeginGroupKeys()

      Creates and returns a list of keys that are synonymous with `KEY_BEGIN_GROUP`.
      Returns:
        A list (never `null`).
      Since:
        1.8

    - #### addBeginGroupKey

          public static void addBeginGroupKey(java.awt.RenderingHints.Key key)

      Adds a key to the list of keys that are synonyms for `KEY_BEGIN_GROUP`.
      Parameters:
        `key` - the key (`null` not permitted).
      Since:
        1.8

    - #### removeBeginGroupKey

          public static void removeBeginGroupKey(java.awt.RenderingHints.Key key)

      Removes a key from the list of keys that are synonyms for `KEY_BEGIN_GROUP`.
      Parameters:
        `key` - the key (`null` not permitted).
      Since:
        1.8

    - #### clearBeginGroupKeys

          public static void clearBeginGroupKeys()

      Clears the list of keys that are treated as synonyms for `KEY_BEGIN_GROUP`.
      Since:
        1.8

    - #### isBeginGroupKey

          public static boolean isBeginGroupKey(java.awt.RenderingHints.Key key)

      Returns `true` if this key is equivalent to `KEY_BEGIN_GROUP`, and `false` otherwise. The purpose of this method is to allow certain keys from external packages (such as JFreeChart and Orson Charts) to use their own keys to drive the behaviour of `SVGHints.KEY_BEGIN_GROUP`. This has two benefits: (1) it avoids the necessity to make JFreeSVG a direct dependency, and (2) it makes the grouping behaviour generic from the point of view of the external package, rather than SVG-specific.
      Parameters:
        `key` - the key (`null` not permitted)
      Returns:
        A boolean.
      Since:
        1.8

    - #### getEndGroupKeys

          public static java.util.List<java.awt.RenderingHints.Key> getEndGroupKeys()

      Creates and returns a list of keys that are synonymous with `KEY_END_GROUP`.
      Returns:
        A list (never `null`).
      Since:
        1.8

    - #### addEndGroupKey

          public static void addEndGroupKey(java.awt.RenderingHints.Key key)

      Adds a key to the list of keys that are synonyms for `KEY_END_GROUP`.
      Parameters:
        `key` - the key (`null` not permitted).
      Since:
        1.8

    - #### removeEndGroupKey

          public static void removeEndGroupKey(java.awt.RenderingHints.Key key)

      Removes a key from the list of keys that are synonyms for `KEY_END_GROUP`.
      Parameters:
        `key` - the key (`null` not permitted).
      Since:
        1.8

    - #### clearEndGroupKeys

          public static void clearEndGroupKeys()

      Clears the list of keys that are treated as synonyms for `KEY_END_GROUP`.
      Since:
        1.8

    - #### isEndGroupKey

          public static boolean isEndGroupKey(java.awt.RenderingHints.Key key)

      Returns `true` if this key is equivalent to `KEY_END_GROUP`, and `false` otherwise. The purpose of this method is to allow certain keys from external packages (such as JFreeChart and Orson Charts) to use their own keys to drive the behaviour of `SVGHints.KEY_END_GROUP`. This has two benefits: (1) it avoids the necessity to make JFreeSVG a direct dependency, and (2) it makes the grouping behaviour generic from the point of view of the external package, rather than SVG-specific.
      Parameters:
        `key` - the key (`null` not permitted).
      Returns:
        A boolean.
      Since:
        1.8

    - #### getElementTitleKeys

          public static java.util.List<java.awt.RenderingHints.Key> getElementTitleKeys()

      Creates and returns a list of keys that are synonymous with `KEY_ELEMENT_TITLE`.
      Returns:
        A list (never `null`).
      Since:
        1.9

    - #### addElementTitleKey

          public static void addElementTitleKey(java.awt.RenderingHints.Key key)

      Adds a key to the list of keys that are synonyms for `KEY_ELEMENT_TITLE`.
      Parameters:
        `key` - the key (`null` not permitted).
      Since:
        1.9

    - #### removeElementTitleKey

          public static void removeElementTitleKey(java.awt.RenderingHints.Key key)

      Removes a key from the list of keys that are synonyms for `KEY_ELEMENT_TITLE`.
      Parameters:
        `key` - the key (`null` not permitted).
      Since:
        1.9

    - #### clearElementTitleKeys

          public static void clearElementTitleKeys()

      Clears the list of keys that are treated as synonyms for `KEY_ELEMENT_TITLE`.
      Since:
        1.9

    - #### isElementTitleKey

          public static boolean isElementTitleKey(java.awt.RenderingHints.Key key)

      Returns `true` if this key is equivalent to `KEY_ELEMENT_TITLE`, and `false` otherwise. The purpose of this method is to allow certain keys from external packages (such as JFreeChart and Orson Charts) to use their own keys to drive the behaviour of `SVGHints.KEY_ELEMENT_TITLE`. This has two benefits: (1) it avoids the necessity to make JFreeSVG a direct dependency, and (2) it makes the element title behaviour generic from the point of view of the external package, rather than SVG-specific.
      Parameters:
        `key` - the key (`null` not permitted)
      Returns:
        A boolean.
      Since:
        1.9