# Class SVGHints

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

public final class SVGHints extends 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 attributes controlled by the hint value (which may be a `String` for the group ID or, more generally, a `Map` containing arbitrary attribute values). 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
Description
`static class`
`SVGHints.Key`
A key for hints used by the `SVGGraphics2D` class.

## Field Summary

Fields
Modifier and Type
Field
Description
`static final SVGHints.Key`
`KEY_BEGIN_GROUP`
Hint key that informs the `SVGGraphics2D` that the caller would like to begin a new group element.
`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`).
`static final SVGHints.Key`
`KEY_ELEMENT_ID`
Hint key to supply an element id for the next element generated.
`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).
`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.
`static final SVGHints.Key`
`KEY_IMAGE_HANDLING`
The key for the hint that controls whether images are embedded in the SVG or referenced externally.
`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.
`static final SVGHints.Key`
`KEY_TEXT_RENDERING`
The key for a hint that permits configuration of the text-rendering attribute in SVG text elements
`static final 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 final 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 final 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 final Object`
`VALUE_IMAGE_HANDLING_REFERENCE`
Hint value for `KEY_IMAGE_HANDLING` to say that images should be referenced externally.
`static final String`
`VALUE_TEXT_RENDERING_AUTO`
Hint value for `KEY_TEXT_RENDERING` to set the `text-rendering` attribute in SVG text elements to 'auto'.
`static final String`
`VALUE_TEXT_RENDERING_INHERIT`
Hint value for `KEY_TEXT_RENDERING` to set the `text-rendering` attribute in SVG text elements to 'inherit'.
`static final String`
`VALUE_TEXT_RENDERING_LEGIBILITY`
Hint value for `KEY_TEXT_RENDERING` to set the `text-rendering` attribute in SVG text elements to 'optimizeLegibility'.
`static final String`
`VALUE_TEXT_RENDERING_PRECISION`
Hint value for `KEY_TEXT_RENDERING` to set the `text-rendering` attribute in SVG text elements to 'geometricPrecision'.
`static final 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

Modifier and Type
Method
Description
`static void`
`addBeginGroupKey(RenderingHints.Key key)`
Adds a key to the list of keys that are synonyms for `KEY_BEGIN_GROUP`.
`static void`
`addElementTitleKey(RenderingHints.Key key)`
Adds a key to the list of keys that are synonyms for `KEY_ELEMENT_TITLE`.
`static void`
`addEndGroupKey(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 List<RenderingHints.Key>`
`getBeginGroupKeys()`
Creates and returns a list of keys that are synonymous with `KEY_BEGIN_GROUP`.
`static List<RenderingHints.Key>`
`getElementTitleKeys()`
Creates and returns a list of keys that are synonymous with `KEY_ELEMENT_TITLE`.
`static List<RenderingHints.Key>`
`getEndGroupKeys()`
Creates and returns a list of keys that are synonymous with `KEY_END_GROUP`.
`static boolean`
`isBeginGroupKey(RenderingHints.Key key)`
Returns `true` if this key is equivalent to `KEY_BEGIN_GROUP`, and `false` otherwise.
`static boolean`
`isElementTitleKey(RenderingHints.Key key)`
Returns `true` if this key is equivalent to `KEY_ELEMENT_TITLE`, and `false` otherwise.
`static boolean`
`isEndGroupKey(RenderingHints.Key key)`
Returns `true` if this key is equivalent to `KEY_END_GROUP`, and `false` otherwise.
`static void`
`removeBeginGroupKey(RenderingHints.Key key)`
Removes a key from the list of keys that are synonyms for `KEY_BEGIN_GROUP`.
`static void`
`removeElementTitleKey(RenderingHints.Key key)`
Removes a key from the list of keys that are synonyms for `KEY_ELEMENT_TITLE`.
`static void`
`removeEndGroupKey(RenderingHints.Key key)`
Removes a key from the list of keys that are synonyms for `KEY_END_GROUP`.

### Methods inherited from class Object

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

## Field Details

### 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 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 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 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 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 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 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 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 either:

- a `String` that will be used as the value of the `id` attribute for the group; or
- a `Map` instance containing arbitrary attribute values for the group (usually including an `id`).

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

### getBeginGroupKeys

public static List<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(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(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(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 List<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(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(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(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 List<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(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(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(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