org.jfree.graphics2d.svg
Class SVGGraphics2D

java.lang.Object
  extended by java.awt.Graphics
      extended by java.awt.Graphics2D
          extended by org.jfree.graphics2d.svg.SVGGraphics2D

public final class SVGGraphics2D
extends Graphics2D

A Graphics2D implementation that creates SVG output. After rendering the graphics via the SVGGraphics2D, you can retrieve an SVG element (see getSVGElement()) or an SVG document (see getSVGDocument()) containing your content.

Usage
Using the SVGGraphics2D class is straightforward. First, create an instance specifying the height and width of the SVG element that will be created. Then, use standard Java2D API calls to draw content into the element. Finally, retrieve the SVG element that has been accumulated. For example:

&nbsp;&nbsp;&nbsp;&nbsp;SVGGraphics2D g2 = new SVGGraphics2D(300, 200);<br> &nbsp;&nbsp;&nbsp;&nbsp;g2.setPaint(Color.RED);<br> &nbsp;&nbsp;&nbsp;&nbsp;g2.draw(new Rectangle(10, 10, 280, 180);<br> &nbsp;&nbsp;&nbsp;&nbsp;String svgElement = g2.getSVGElement();<br>

For the content generation step, you can make use of third party libraries, such as JFreeChart and Orson Charts, that render output using standard Java2D API calls.

Rendering Hints
The SVGGraphics2D supports a couple of custom rendering hints - for details, refer to the SVGHints class documentation. Also see the examples in this blog post: Orson Charts 3D / Enhanced SVG Export.

Other Notes
Some additional notes:

For some demos showing how to use this class, look in the org.jfree.graphics2d.demo package in thesrc directory.


Constructor Summary
SVGGraphics2D(int width, int height)
          Creates a new instance with the specified width and height.
SVGGraphics2D(int width, int height, StringBuilder sb)
          Creates a new instance with the specified width and height that will populate the supplied StringBuilder instance.
 
Method Summary
 void addRenderingHints(Map<?,?> hints)
          Adds all the supplied rendering hints.
 void clearRect(int x, int y, int width, int height)
          Clears the specified rectangle by filling it with the current background color.
 void clip(Shape s)
          Clips to the intersection of the current clipping region and the specified shape.
 void clipRect(int x, int y, int width, int height)
          Clips to the intersection of the current clipping region and the specified rectangle.
 void copyArea(int x, int y, int width, int height, int dx, int dy)
          This method does nothing.
 Graphics create()
          Creates a new graphics object that is a copy of this graphics object (except that it has not accumulated the drawing operations).
 void dispose()
          This method does nothing, there are no resources to dispose.
 void draw(Shape s)
          Draws the specified shape with the current paint and stroke.
 void drawArc(int x, int y, int width, int height, int startAngle, int arcAngle)
          Draws an arc contained within the rectangle (x, y, width, height), starting at startAngle and continuing through arcAngle degrees using the current paint and stroke.
 void drawGlyphVector(GlyphVector g, float x, float y)
          Draws the specified glyph vector at the location (x, y).
 void drawImage(BufferedImage img, BufferedImageOp op, int x, int y)
          Draws the image resulting from applying the BufferedImageOp to the specified image at the location (x, y).
 boolean drawImage(Image img, AffineTransform xform, ImageObserver obs)
          Draws an image with the specified transform.
 boolean drawImage(Image img, int x, int y, Color bgcolor, ImageObserver observer)
          Draws an image at the location (x, y).
 boolean drawImage(Image img, int x, int y, ImageObserver observer)
          Draws an image at the location (x, y).
 boolean drawImage(Image img, int x, int y, int w, int h, Color bgcolor, ImageObserver observer)
          Draws an image to the rectangle (x, y, w, h) (scaling it if required), first filling the background with the specified color.
 boolean drawImage(Image img, int x, int y, int w, int h, ImageObserver observer)
          Draws the image into the rectangle defined by (x, y, w, h).
 boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, Color bgcolor, ImageObserver observer)
          Draws part of an image (defined by the source rectangle (sx1, sy1, sx2, sy2)) into the destination rectangle (dx1, dy1, dx2, dy2).
 boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer)
          Draws part of an image (defined by the source rectangle (sx1, sy1, sx2, sy2)) into the destination rectangle (dx1, dy1, dx2, dy2).
 void drawLine(int x1, int y1, int x2, int y2)
          Draws a line from (x1, y1) to (x2, y2) using the current paint and stroke.
 void drawOval(int x, int y, int width, int height)
          Draws an oval framed by the rectangle (x, y, width, height) using the current paint and stroke.
 void drawPolygon(int[] xPoints, int[] yPoints, int nPoints)
          Draws the specified polygon using the current paint and stroke.
 void drawPolyline(int[] xPoints, int[] yPoints, int nPoints)
          Draws the specified multi-segment line using the current paint and stroke.
 void drawRenderableImage(RenderableImage img, AffineTransform xform)
          Draws the renderable image.
 void drawRenderedImage(RenderedImage img, AffineTransform xform)
          Draws the rendered image.
 void drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)
          Draws a rectangle with rounded corners using the current paint and stroke.
 void drawString(AttributedCharacterIterator iterator, float x, float y)
          Draws a string of attributed characters at (x, y).
 void drawString(AttributedCharacterIterator iterator, int x, int y)
          Draws a string of attributed characters at (x, y).
 void drawString(String str, float x, float y)
          Draws a string at (x, y).
 void drawString(String str, int x, int y)
          Draws a string at (x, y).
 void fill(Shape s)
          Fills the specified shape with the current paint.
 void fillArc(int x, int y, int width, int height, int startAngle, int arcAngle)
          Fills an arc contained within the rectangle (x, y, width, height), starting at startAngle and continuing through arcAngle degrees, using the current paint
 void fillOval(int x, int y, int width, int height)
          Fills an oval framed by the rectangle (x, y, width, height).
 void fillPolygon(int[] xPoints, int[] yPoints, int nPoints)
          Fills the specified polygon using the current paint.
 void fillRect(int x, int y, int width, int height)
          Fills the specified rectangle with the current paint.
 void fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)
          Fills a rectangle with rounded corners using the current paint.
 Color getBackground()
          Returns the background color.
 boolean getCheckStrokeControlHint()
          Returns the flag that controls whether or not this object will observe the KEY_STROKE_CONTROL rendering hint.
 Shape getClip()
          Returns the user clipping region.
 Rectangle getClipBounds()
          Returns the bounds of the user clipping region.
 Color getColor()
          Returns the foreground color.
 Composite getComposite()
          Returns the current composite.
 String getDefsKeyPrefix()
          Returns the prefix used for all keys in the DEFS element.
 GraphicsConfiguration getDeviceConfiguration()
          Returns the device configuration associated with this Graphics2D.
 Set<String> getElementIDs()
          Returns a new set containing the element IDs that have been used in output so far.
 String getFilePrefix()
          Returns the prefix used to generate a filename for an image that is referenced from, rather than embedded in, the SVG element.
 String getFileSuffix()
          Returns the suffix used to generate a filename for an image that is referenced from, rather than embedded in, the SVG element.
 Font getFont()
          Returns the current font used for drawing text.
 FontMapper getFontMapper()
          Returns the font mapper (an object that optionally maps font family names to alternates).
 FontMetrics getFontMetrics(Font f)
          Returns the font metrics for the specified font.
 FontRenderContext getFontRenderContext()
          Returns the font render context.
 int getGeometryDP()
          Returns the number of decimal places used to write the coordinates of geometrical shapes.
 int getHeight()
          Returns the height for the SVG element, specified in the constructor.
 Paint getPaint()
          Returns the paint used to draw or fill shapes (or text).
 Object getRenderingHint(RenderingHints.Key hintKey)
          Returns the current value for the specified hint.
 RenderingHints getRenderingHints()
          Returns a copy of the rendering hints.
 String getShapeRendering()
          Returns the value of the 'shape-rendering' property that will be written to the SVG element.
 Stroke getStroke()
          Returns the current stroke (used when drawing shapes).
 String getSVGDocument()
          Returns an SVG document.
 String getSVGElement()
          Returns the SVG element that has been generated by calls to this Graphics2D implementation.
 String getSVGElement(String id)
          Returns the SVG element that has been generated by calls to this Graphics2D implementation, giving it the specified id.
 List<ImageElement> getSVGImages()
          Returns the list of image elements that have been referenced in the SVG output but not embedded.
 String getTextRendering()
          Returns the value of the 'text-rendering' property that will be written to the SVG element.
 AffineTransform getTransform()
          Returns a copy of the current transform.
 int getTransformDP()
          Returns the number of decimal places used to write the transformation matrices in the SVG output.
 int getWidth()
          Returns the width for the SVG element, specified in the constructor.
 double getZeroStrokeWidth()
          Returns the width to use for the SVG stroke when the AWT stroke specified has a zero width (the default value is 0.1).
 boolean hit(Rectangle rect, Shape s, boolean onStroke)
          Returns true if the rectangle (in device space) intersects with the shape (the interior, if onStroke is false, otherwise the stroked outline of the shape).
 void rotate(double theta)
          Applies a rotation (anti-clockwise) about (0, 0).
 void rotate(double theta, double x, double y)
          Applies a rotation (anti-clockwise) about (x, y).
 void scale(double sx, double sy)
          Applies a scale transformation.
 void setBackground(Color color)
          Sets the background color.
 void setCheckStrokeControlHint(boolean check)
          Sets the flag that controls whether or not this object will observe the KEY_STROKE_CONTROL rendering hint.
 void setClip(int x, int y, int width, int height)
          Sets the user clipping region to the specified rectangle.
 void setClip(Shape shape)
          Sets the user clipping region.
 void setColor(Color c)
          Sets the foreground color.
 void setComposite(Composite comp)
          Sets the composite (only AlphaComposite is handled).
 void setDefsKeyPrefix(String prefix)
          Sets the prefix that will be used for all keys in the DEFS element.
 void setFilePrefix(String prefix)
          Sets the prefix used to generate a filename for any image that is referenced from the SVG element.
 void setFileSuffix(String suffix)
          Sets the suffix used to generate a filename for any image that is referenced from the SVG element.
 void setFont(Font font)
          Sets the font to be used for drawing text.
 void setFontMapper(FontMapper mapper)
          Sets the font mapper.
 void setGeometryDP(int dp)
          Sets the number of decimal places used to write the coordinates of geometrical shapes in the SVG output.
 void setPaint(Paint paint)
          Sets the paint used to draw or fill shapes (or text).
 void setPaintMode()
          Does nothing in this SVGGraphics2D implementation.
 void setRenderingHint(RenderingHints.Key hintKey, Object hintValue)
          Sets the value for a hint.
 void setRenderingHints(Map<?,?> hints)
          Sets the rendering hints to the specified collection.
 void setShapeRendering(String value)
          Sets the value of the 'shape-rendering' property that will be written to the SVG element.
 void setStroke(Stroke s)
          Sets the stroke that will be used to draw shapes.
 void setTextRendering(String value)
          Sets the value of the 'text-rendering' property that will be written to the SVG element.
 void setTransform(AffineTransform t)
          Sets the transform.
 void setTransformDP(int dp)
          Sets the number of decimal places used to write the transformation matrices in the SVG output.
 void setXORMode(Color c)
          Does nothing in this SVGGraphics2D implementation.
 void setZeroStrokeWidth(double width)
          Sets the width to use for the SVG stroke when the current AWT stroke has a width of 0.0.
 void shear(double shx, double shy)
          Applies a shear transformation.
 void transform(AffineTransform t)
          Applies this transform to the existing transform by concatenating it.
 void translate(double tx, double ty)
          Applies the translation (tx, ty).
 void translate(int tx, int ty)
          Applies the translation (tx, ty).
 
Methods inherited from class java.awt.Graphics2D
draw3DRect, fill3DRect
 
Methods inherited from class java.awt.Graphics
create, drawBytes, drawChars, drawPolygon, drawRect, fillPolygon, finalize, getClipBounds, getClipRect, getFontMetrics, hitClip, toString
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

SVGGraphics2D

public SVGGraphics2D(int width,
                     int height)
Creates a new instance with the specified width and height.

Parameters:
width - the width of the SVG element.
height - the height of the SVG element.

SVGGraphics2D

public SVGGraphics2D(int width,
                     int height,
                     StringBuilder sb)
Creates a new instance with the specified width and height that will populate the supplied StringBuilder instance. This constructor is used by the create() method, but won't normally be called directly by user code.

Parameters:
width - the width of the SVG element.
height - the height of the SVG element.
sb - the string builder (null not permitted).
Since:
2.0
Method Detail

getWidth

public int getWidth()
Returns the width for the SVG element, specified in the constructor. This value will be written to the SVG element returned by the getSVGElement() method.

Returns:
The width for the SVG element.

getHeight

public int getHeight()
Returns the height for the SVG element, specified in the constructor. This value will be written to the SVG element returned by the getSVGElement() method.

Returns:
The height for the SVG element.

getShapeRendering

public String getShapeRendering()
Returns the value of the 'shape-rendering' property that will be written to the SVG element. The default value is "auto".

Returns:
The shape rendering property.
Since:
2.0

setShapeRendering

public void setShapeRendering(String value)
Sets the value of the 'shape-rendering' property that will be written to the SVG element. Permitted values are "auto", "crispEdges", "geometricPrecision", "inherit" and "optimizeSpeed".

Parameters:
value - the new value.
Since:
2.0

getTextRendering

public String getTextRendering()
Returns the value of the 'text-rendering' property that will be written to the SVG element. The default value is "auto".

Returns:
The text rendering property.
Since:
2.0

setTextRendering

public void setTextRendering(String value)
Sets the value of the 'text-rendering' property that will be written to the SVG element. Permitted values are "auto", "optimizeSpeed", "optimizeLegibility" and "geometricPrecision".

Parameters:
value - the new value.
Since:
2.0

getCheckStrokeControlHint

public boolean getCheckStrokeControlHint()
Returns the flag that controls whether or not this object will observe the KEY_STROKE_CONTROL rendering hint. The default value is true.

Returns:
A boolean.
Since:
2.0
See Also:
setCheckStrokeControlHint(boolean)

setCheckStrokeControlHint

public void setCheckStrokeControlHint(boolean check)
Sets the flag that controls whether or not this object will observe the KEY_STROKE_CONTROL rendering hint. When enabled (the default), a hint to normalise strokes will write a stroke-style attribute with the value crispEdges.

Parameters:
check - the new flag value.
Since:
2.0
See Also:
getCheckStrokeControlHint()

getDefsKeyPrefix

public String getDefsKeyPrefix()
Returns the prefix used for all keys in the DEFS element. The default value is String.valueOf(System.nanoTime()).

Returns:
The prefix string (never null).
Since:
1.9

setDefsKeyPrefix

public void setDefsKeyPrefix(String prefix)
Sets the prefix that will be used for all keys in the DEFS element. If required, this must be set immediately after construction (before any content generation methods have been called).

Parameters:
prefix - the prefix (null not permitted).
Since:
1.9

getTransformDP

public int getTransformDP()
Returns the number of decimal places used to write the transformation matrices in the SVG output. The default value is 6.

Note that there is a separate attribute to control the number of decimal places for geometrical elements in the output (see getGeometryDP()).

Returns:
The number of decimal places.
See Also:
setTransformDP(int)

setTransformDP

public void setTransformDP(int dp)
Sets the number of decimal places used to write the transformation matrices in the SVG output. Values in the range 1 to 10 will be used to configure a formatter to that number of decimal places, for all other values we revert to the normal String conversion of double primitives (approximately 16 decimals places).

Note that there is a separate attribute to control the number of decimal places for geometrical elements in the output (see setGeometryDP(int)).

Parameters:
dp - the number of decimal places (normally 1 to 10).
See Also:
getTransformDP()

getGeometryDP

public int getGeometryDP()
Returns the number of decimal places used to write the coordinates of geometrical shapes. The default value is 2.

Note that there is a separate attribute to control the number of decimal places for transform matrices in the output (see getTransformDP()).

Returns:
The number of decimal places.

setGeometryDP

public void setGeometryDP(int dp)
Sets the number of decimal places used to write the coordinates of geometrical shapes in the SVG output. Values in the range 1 to 10 will be used to configure a formatter to that number of decimal places, for all other values we revert to the normal String conversion of double primitives (approximately 16 decimals places).

Note that there is a separate attribute to control the number of decimal places for transform matrices in the output (see setTransformDP(int)).

Parameters:
dp - the number of decimal places (normally 1 to 10).

getFilePrefix

public String getFilePrefix()
Returns the prefix used to generate a filename for an image that is referenced from, rather than embedded in, the SVG element.

Returns:
The file prefix (never null).
Since:
1.5

setFilePrefix

public void setFilePrefix(String prefix)
Sets the prefix used to generate a filename for any image that is referenced from the SVG element.

Parameters:
prefix - the new prefix (null not permitted).
Since:
1.5

getFileSuffix

public String getFileSuffix()
Returns the suffix used to generate a filename for an image that is referenced from, rather than embedded in, the SVG element.

Returns:
The file suffix (never null).
Since:
1.5

setFileSuffix

public void setFileSuffix(String suffix)
Sets the suffix used to generate a filename for any image that is referenced from the SVG element.

Parameters:
suffix - the new prefix (null not permitted).
Since:
1.5

getZeroStrokeWidth

public double getZeroStrokeWidth()
Returns the width to use for the SVG stroke when the AWT stroke specified has a zero width (the default value is 0.1). In the Java specification for BasicStroke it states "If width is set to 0.0f, the stroke is rendered as the thinnest possible line for the target device and the antialias hint setting." We don't have a means to implement that accurately since we must specify a fixed width.

Returns:
The width.
Since:
1.9

setZeroStrokeWidth

public void setZeroStrokeWidth(double width)
Sets the width to use for the SVG stroke when the current AWT stroke has a width of 0.0.

Parameters:
width - the new width (must be 0 or greater).
Since:
1.9

getDeviceConfiguration

public GraphicsConfiguration getDeviceConfiguration()
Returns the device configuration associated with this Graphics2D.

Specified by:
getDeviceConfiguration in class Graphics2D
Returns:
The graphics configuration.

create

public Graphics create()
Creates a new graphics object that is a copy of this graphics object (except that it has not accumulated the drawing operations). Not sure yet when or why this would be useful when creating SVG output.

Specified by:
create in class Graphics
Returns:
A new graphics object.

getPaint

public Paint getPaint()
Returns the paint used to draw or fill shapes (or text). The default value is Color.BLACK.

Specified by:
getPaint in class Graphics2D
Returns:
The paint (never null).
See Also:
setPaint(java.awt.Paint)

setPaint

public void setPaint(Paint paint)
Sets the paint used to draw or fill shapes (or text). If paint is an instance of Color, this method will also update the current color attribute (see getColor()). If you pass null to this method, it does nothing (in accordance with the JDK specification).

Specified by:
setPaint in class Graphics2D
Parameters:
paint - the paint (null is permitted but ignored).
See Also:
getPaint()

getColor

public Color getColor()
Returns the foreground color. This method exists for backwards compatibility in AWT, you should use the getPaint() method.

Specified by:
getColor in class Graphics
Returns:
The foreground color (never null).
See Also:
getPaint()

setColor

public void setColor(Color c)
Sets the foreground color. This method exists for backwards compatibility in AWT, you should use the setPaint(java.awt.Paint) method.

Specified by:
setColor in class Graphics
Parameters:
c - the color (null permitted but ignored).
See Also:
setPaint(java.awt.Paint)

getBackground

public Color getBackground()
Returns the background color. The default value is Color.BLACK. This is used by the clearRect(int, int, int, int) method.

Specified by:
getBackground in class Graphics2D
Returns:
The background color (possibly null).
See Also:
setBackground(java.awt.Color)

setBackground

public void setBackground(Color color)
Sets the background color. This is used by the clearRect(int, int, int, int) method. The reference implementation allows null for the background color so we allow that too (but for that case, the clearRect method will do nothing).

Specified by:
setBackground in class Graphics2D
Parameters:
color - the color (null permitted).
See Also:
getBackground()

getComposite

public Composite getComposite()
Returns the current composite.

Specified by:
getComposite in class Graphics2D
Returns:
The current composite (never null).
See Also:
setComposite(java.awt.Composite)

setComposite

public void setComposite(Composite comp)
Sets the composite (only AlphaComposite is handled).

Specified by:
setComposite in class Graphics2D
Parameters:
comp - the composite (null not permitted).
See Also:
getComposite()

getStroke

public Stroke getStroke()
Returns the current stroke (used when drawing shapes).

Specified by:
getStroke in class Graphics2D
Returns:
The current stroke (never null).
See Also:
setStroke(java.awt.Stroke)

setStroke

public void setStroke(Stroke s)
Sets the stroke that will be used to draw shapes.

Specified by:
setStroke in class Graphics2D
Parameters:
s - the stroke (null not permitted).
See Also:
getStroke()

getRenderingHint

public Object getRenderingHint(RenderingHints.Key hintKey)
Returns the current value for the specified hint. See the SVGHints class for information about the hints that can be used with SVGGraphics2D.

Specified by:
getRenderingHint in class Graphics2D
Parameters:
hintKey - the hint key (null permitted, but the result will be null also).
Returns:
The current value for the specified hint (possibly null).
See Also:
setRenderingHint(java.awt.RenderingHints.Key, java.lang.Object)

setRenderingHint

public void setRenderingHint(RenderingHints.Key hintKey,
                             Object hintValue)
Sets the value for a hint. See the SVGHints class for information about the hints that can be used with this implementation.

Specified by:
setRenderingHint in class Graphics2D
Parameters:
hintKey - the hint key (null not permitted).
hintValue - the hint value.
See Also:
getRenderingHint(java.awt.RenderingHints.Key)

getRenderingHints

public RenderingHints getRenderingHints()
Returns a copy of the rendering hints. Modifying the returned copy will have no impact on the state of this Graphics2D instance.

Specified by:
getRenderingHints in class Graphics2D
Returns:
The rendering hints (never null).
See Also:
setRenderingHints(java.util.Map)

setRenderingHints

public void setRenderingHints(Map<?,?> hints)
Sets the rendering hints to the specified collection.

Specified by:
setRenderingHints in class Graphics2D
Parameters:
hints - the new set of hints (null not permitted).
See Also:
getRenderingHints()

addRenderingHints

public void addRenderingHints(Map<?,?> hints)
Adds all the supplied rendering hints.

Specified by:
addRenderingHints in class Graphics2D
Parameters:
hints - the hints (null not permitted).

draw

public void draw(Shape s)
Draws the specified shape with the current paint and stroke. There is direct handling for Line2D, Rectangle2D and Path2D. All other shapes are mapped to a GeneralPath and then drawn (effectively as Path2D objects).

Specified by:
draw in class Graphics2D
Parameters:
s - the shape (null not permitted).
See Also:
fill(java.awt.Shape)

fill

public void fill(Shape s)
Fills the specified shape with the current paint. There is direct handling for Rectangle2D and Path2D. All other shapes are mapped to a GeneralPath and then filled.

Specified by:
fill in class Graphics2D
Parameters:
s - the shape (null not permitted).
See Also:
draw(java.awt.Shape)

getFont

public Font getFont()
Returns the current font used for drawing text.

Specified by:
getFont in class Graphics
Returns:
The current font (never null).
See Also:
setFont(java.awt.Font)

setFont

public void setFont(Font font)
Sets the font to be used for drawing text.

Specified by:
setFont in class Graphics
Parameters:
font - the font (null is permitted but ignored).
See Also:
getFont()

getFontMapper

public FontMapper getFontMapper()
Returns the font mapper (an object that optionally maps font family names to alternates). The default mapper will convert Java logical font names to the equivalent SVG generic font name, and leave all other font names unchanged.

Returns:
The font mapper (never null).
Since:
1.5
See Also:
setFontMapper(org.jfree.graphics2d.svg.FontMapper)

setFontMapper

public void setFontMapper(FontMapper mapper)
Sets the font mapper.

Parameters:
mapper - the font mapper (null not permitted).
Since:
1.5

getFontMetrics

public FontMetrics getFontMetrics(Font f)
Returns the font metrics for the specified font.

Specified by:
getFontMetrics in class Graphics
Parameters:
f - the font.
Returns:
The font metrics.

getFontRenderContext

public FontRenderContext getFontRenderContext()
Returns the font render context.

Specified by:
getFontRenderContext in class Graphics2D
Returns:
The font render context (never null).

drawString

public void drawString(String str,
                       int x,
                       int y)
Draws a string at (x, y). The start of the text at the baseline level will be aligned with the (x, y) point.

Note that you can make use of the SVGHints.KEY_TEXT_RENDERING hint when drawing strings (this is completely optional though).

Specified by:
drawString in class Graphics2D
Parameters:
str - the string (null not permitted).
x - the x-coordinate.
y - the y-coordinate.
See Also:
drawString(java.lang.String, float, float)

drawString

public void drawString(String str,
                       float x,
                       float y)
Draws a string at (x, y). The start of the text at the baseline level will be aligned with the (x, y) point.

Note that you can make use of the SVGHints.KEY_TEXT_RENDERING hint when drawing strings (this is completely optional though).

Specified by:
drawString in class Graphics2D
Parameters:
str - the string (null not permitted).
x - the x-coordinate.
y - the y-coordinate.

drawString

public void drawString(AttributedCharacterIterator iterator,
                       int x,
                       int y)
Draws a string of attributed characters at (x, y). The call is delegated to drawString(AttributedCharacterIterator, float, float).

Specified by:
drawString in class Graphics2D
Parameters:
iterator - an iterator for the characters.
x - the x-coordinate.
y - the x-coordinate.

drawString

public void drawString(AttributedCharacterIterator iterator,
                       float x,
                       float y)
Draws a string of attributed characters at (x, y).

Specified by:
drawString in class Graphics2D
Parameters:
iterator - an iterator over the characters (null not permitted).
x - the x-coordinate.
y - the y-coordinate.

drawGlyphVector

public void drawGlyphVector(GlyphVector g,
                            float x,
                            float y)
Draws the specified glyph vector at the location (x, y).

Specified by:
drawGlyphVector in class Graphics2D
Parameters:
g - the glyph vector (null not permitted).
x - the x-coordinate.
y - the y-coordinate.

translate

public void translate(int tx,
                      int ty)
Applies the translation (tx, ty). This call is delegated to translate(double, double).

Specified by:
translate in class Graphics2D
Parameters:
tx - the x-translation.
ty - the y-translation.
See Also:
translate(double, double)

translate

public void translate(double tx,
                      double ty)
Applies the translation (tx, ty).

Specified by:
translate in class Graphics2D
Parameters:
tx - the x-translation.
ty - the y-translation.

rotate

public void rotate(double theta)
Applies a rotation (anti-clockwise) about (0, 0).

Specified by:
rotate in class Graphics2D
Parameters:
theta - the rotation angle (in radians).

rotate

public void rotate(double theta,
                   double x,
                   double y)
Applies a rotation (anti-clockwise) about (x, y).

Specified by:
rotate in class Graphics2D
Parameters:
theta - the rotation angle (in radians).
x - the x-coordinate.
y - the y-coordinate.

scale

public void scale(double sx,
                  double sy)
Applies a scale transformation.

Specified by:
scale in class Graphics2D
Parameters:
sx - the x-scaling factor.
sy - the y-scaling factor.

shear

public void shear(double shx,
                  double shy)
Applies a shear transformation. This is equivalent to the following call to the transform method:

Specified by:
shear in class Graphics2D
Parameters:
shx - the x-shear factor.
shy - the y-shear factor.

transform

public void transform(AffineTransform t)
Applies this transform to the existing transform by concatenating it.

Specified by:
transform in class Graphics2D
Parameters:
t - the transform (null not permitted).

getTransform

public AffineTransform getTransform()
Returns a copy of the current transform.

Specified by:
getTransform in class Graphics2D
Returns:
A copy of the current transform (never null).
See Also:
setTransform(java.awt.geom.AffineTransform)

setTransform

public void setTransform(AffineTransform t)
Sets the transform.

Specified by:
setTransform in class Graphics2D
Parameters:
t - the new transform (null permitted, resets to the identity transform).
See Also:
getTransform()

hit

public boolean hit(Rectangle rect,
                   Shape s,
                   boolean onStroke)
Returns true if the rectangle (in device space) intersects with the shape (the interior, if onStroke is false, otherwise the stroked outline of the shape).

Specified by:
hit in class Graphics2D
Parameters:
rect - a rectangle (in device space).
s - the shape.
onStroke - test the stroked outline only?
Returns:
A boolean.

setPaintMode

public void setPaintMode()
Does nothing in this SVGGraphics2D implementation.

Specified by:
setPaintMode in class Graphics

setXORMode

public void setXORMode(Color c)
Does nothing in this SVGGraphics2D implementation.

Specified by:
setXORMode in class Graphics
Parameters:
c - ignored

getClipBounds

public Rectangle getClipBounds()
Returns the bounds of the user clipping region.

Specified by:
getClipBounds in class Graphics
Returns:
The clip bounds (possibly null).
See Also:
getClip()

getClip

public Shape getClip()
Returns the user clipping region. The initial default value is null.

Specified by:
getClip in class Graphics
Returns:
The user clipping region (possibly null).
See Also:
setClip(java.awt.Shape)

setClip

public void setClip(Shape shape)
Sets the user clipping region.

Specified by:
setClip in class Graphics
Parameters:
shape - the new user clipping region (null permitted).
See Also:
getClip()

clip

public void clip(Shape s)
Clips to the intersection of the current clipping region and the specified shape. According to the Oracle API specification, this method will accept a null argument, but there is an open bug report (since 2004) that suggests this is wrong:

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6206189

Specified by:
clip in class Graphics2D
Parameters:
s - the clip shape (null not permitted).

clipRect

public void clipRect(int x,
                     int y,
                     int width,
                     int height)
Clips to the intersection of the current clipping region and the specified rectangle.

Specified by:
clipRect in class Graphics
Parameters:
x - the x-coordinate.
y - the y-coordinate.
width - the width.
height - the height.

setClip

public void setClip(int x,
                    int y,
                    int width,
                    int height)
Sets the user clipping region to the specified rectangle.

Specified by:
setClip in class Graphics
Parameters:
x - the x-coordinate.
y - the y-coordinate.
width - the width.
height - the height.
See Also:
getClip()

drawLine

public void drawLine(int x1,
                     int y1,
                     int x2,
                     int y2)
Draws a line from (x1, y1) to (x2, y2) using the current paint and stroke.

Specified by:
drawLine in class Graphics
Parameters:
x1 - the x-coordinate of the start point.
y1 - the y-coordinate of the start point.
x2 - the x-coordinate of the end point.
y2 - the x-coordinate of the end point.

fillRect

public void fillRect(int x,
                     int y,
                     int width,
                     int height)
Fills the specified rectangle with the current paint.

Specified by:
fillRect in class Graphics
Parameters:
x - the x-coordinate.
y - the y-coordinate.
width - the rectangle width.
height - the rectangle height.

clearRect

public void clearRect(int x,
                      int y,
                      int width,
                      int height)
Clears the specified rectangle by filling it with the current background color. If the background color is null, this method will do nothing.

Specified by:
clearRect in class Graphics
Parameters:
x - the x-coordinate.
y - the y-coordinate.
width - the width.
height - the height.
See Also:
getBackground()

drawRoundRect

public void drawRoundRect(int x,
                          int y,
                          int width,
                          int height,
                          int arcWidth,
                          int arcHeight)
Draws a rectangle with rounded corners using the current paint and stroke.

Specified by:
drawRoundRect in class Graphics
Parameters:
x - the x-coordinate.
y - the y-coordinate.
width - the width.
height - the height.
arcWidth - the arc-width.
arcHeight - the arc-height.
See Also:
fillRoundRect(int, int, int, int, int, int)

fillRoundRect

public void fillRoundRect(int x,
                          int y,
                          int width,
                          int height,
                          int arcWidth,
                          int arcHeight)
Fills a rectangle with rounded corners using the current paint.

Specified by:
fillRoundRect in class Graphics
Parameters:
x - the x-coordinate.
y - the y-coordinate.
width - the width.
height - the height.
arcWidth - the arc-width.
arcHeight - the arc-height.
See Also:
drawRoundRect(int, int, int, int, int, int)

drawOval

public void drawOval(int x,
                     int y,
                     int width,
                     int height)
Draws an oval framed by the rectangle (x, y, width, height) using the current paint and stroke.

Specified by:
drawOval in class Graphics
Parameters:
x - the x-coordinate.
y - the y-coordinate.
width - the width.
height - the height.
See Also:
fillOval(int, int, int, int)

fillOval

public void fillOval(int x,
                     int y,
                     int width,
                     int height)
Fills an oval framed by the rectangle (x, y, width, height).

Specified by:
fillOval in class Graphics
Parameters:
x - the x-coordinate.
y - the y-coordinate.
width - the width.
height - the height.
See Also:
drawOval(int, int, int, int)

drawArc

public void drawArc(int x,
                    int y,
                    int width,
                    int height,
                    int startAngle,
                    int arcAngle)
Draws an arc contained within the rectangle (x, y, width, height), starting at startAngle and continuing through arcAngle degrees using the current paint and stroke.

Specified by:
drawArc in class Graphics
Parameters:
x - the x-coordinate.
y - the y-coordinate.
width - the width.
height - the height.
startAngle - the start angle in degrees, 0 = 3 o'clock.
arcAngle - the angle (anticlockwise) in degrees.
See Also:
fillArc(int, int, int, int, int, int)

fillArc

public void fillArc(int x,
                    int y,
                    int width,
                    int height,
                    int startAngle,
                    int arcAngle)
Fills an arc contained within the rectangle (x, y, width, height), starting at startAngle and continuing through arcAngle degrees, using the current paint

Specified by:
fillArc in class Graphics
Parameters:
x - the x-coordinate.
y - the y-coordinate.
width - the width.
height - the height.
startAngle - the start angle in degrees, 0 = 3 o'clock.
arcAngle - the angle (anticlockwise) in degrees.
See Also:
drawArc(int, int, int, int, int, int)

drawPolyline

public void drawPolyline(int[] xPoints,
                         int[] yPoints,
                         int nPoints)
Draws the specified multi-segment line using the current paint and stroke.

Specified by:
drawPolyline in class Graphics
Parameters:
xPoints - the x-points.
yPoints - the y-points.
nPoints - the number of points to use for the polyline.

drawPolygon

public void drawPolygon(int[] xPoints,
                        int[] yPoints,
                        int nPoints)
Draws the specified polygon using the current paint and stroke.

Specified by:
drawPolygon in class Graphics
Parameters:
xPoints - the x-points.
yPoints - the y-points.
nPoints - the number of points to use for the polygon.
See Also:
fillPolygon(int[], int[], int)

fillPolygon

public void fillPolygon(int[] xPoints,
                        int[] yPoints,
                        int nPoints)
Fills the specified polygon using the current paint.

Specified by:
fillPolygon in class Graphics
Parameters:
xPoints - the x-points.
yPoints - the y-points.
nPoints - the number of points to use for the polygon.
See Also:
drawPolygon(int[], int[], int)

drawImage

public boolean drawImage(Image img,
                         int x,
                         int y,
                         ImageObserver observer)
Draws an image at the location (x, y). Note that the observer is ignored.

Specified by:
drawImage in class Graphics
Parameters:
img - the image (null not permitted).
x - the x-coordinate.
y - the y-coordinate.
observer - ignored.
Returns:
true if the image is drawn.

drawImage

public boolean drawImage(Image img,
                         int x,
                         int y,
                         int w,
                         int h,
                         ImageObserver observer)
Draws the image into the rectangle defined by (x, y, w, h). Note that the observer is ignored (it is not useful in this context).

Specified by:
drawImage in class Graphics
Parameters:
img - the image.
x - the x-coordinate.
y - the y-coordinate.
w - the width.
h - the height.
observer - ignored.
Returns:
true if the image is drawn.

drawImage

public boolean drawImage(Image img,
                         int x,
                         int y,
                         Color bgcolor,
                         ImageObserver observer)
Draws an image at the location (x, y). Note that the observer is ignored.

Specified by:
drawImage in class Graphics
Parameters:
img - the image (null not permitted).
x - the x-coordinate.
y - the y-coordinate.
bgcolor - the background color (null permitted).
observer - ignored.
Returns:
true if the image is drawn.

drawImage

public boolean drawImage(Image img,
                         int x,
                         int y,
                         int w,
                         int h,
                         Color bgcolor,
                         ImageObserver observer)
Draws an image to the rectangle (x, y, w, h) (scaling it if required), first filling the background with the specified color. Note that the observer is ignored.

Specified by:
drawImage in class Graphics
Parameters:
img - the image.
x - the x-coordinate.
y - the y-coordinate.
w - the width.
h - the height.
bgcolor - the background color (null permitted).
observer - ignored.
Returns:
true if the image is drawn.

drawImage

public boolean drawImage(Image img,
                         int dx1,
                         int dy1,
                         int dx2,
                         int dy2,
                         int sx1,
                         int sy1,
                         int sx2,
                         int sy2,
                         ImageObserver observer)
Draws part of an image (defined by the source rectangle (sx1, sy1, sx2, sy2)) into the destination rectangle (dx1, dy1, dx2, dy2). Note that the observer is ignored.

Specified by:
drawImage in class Graphics
Parameters:
img - the image.
dx1 - the x-coordinate for the top left of the destination.
dy1 - the y-coordinate for the top left of the destination.
dx2 - the x-coordinate for the bottom right of the destination.
dy2 - the y-coordinate for the bottom right of the destination.
sx1 - the x-coordinate for the top left of the source.
sy1 - the y-coordinate for the top left of the source.
sx2 - the x-coordinate for the bottom right of the source.
sy2 - the y-coordinate for the bottom right of the source.
Returns:
true if the image is drawn.

drawImage

public boolean drawImage(Image img,
                         int dx1,
                         int dy1,
                         int dx2,
                         int dy2,
                         int sx1,
                         int sy1,
                         int sx2,
                         int sy2,
                         Color bgcolor,
                         ImageObserver observer)
Draws part of an image (defined by the source rectangle (sx1, sy1, sx2, sy2)) into the destination rectangle (dx1, dy1, dx2, dy2). The destination rectangle is first cleared by filling it with the specified bgcolor. Note that the observer is ignored.

Specified by:
drawImage in class Graphics
Parameters:
img - the image.
dx1 - the x-coordinate for the top left of the destination.
dy1 - the y-coordinate for the top left of the destination.
dx2 - the x-coordinate for the bottom right of the destination.
dy2 - the y-coordinate for the bottom right of the destination.
sx1 - the x-coordinate for the top left of the source.
sy1 - the y-coordinate for the top left of the source.
sx2 - the x-coordinate for the bottom right of the source.
sy2 - the y-coordinate for the bottom right of the source.
bgcolor - the background color (null permitted).
observer - ignored.
Returns:
true if the image is drawn.

drawRenderedImage

public void drawRenderedImage(RenderedImage img,
                              AffineTransform xform)
Draws the rendered image.

Specified by:
drawRenderedImage in class Graphics2D
Parameters:
img - the image.
xform - the transform.

drawRenderableImage

public void drawRenderableImage(RenderableImage img,
                                AffineTransform xform)
Draws the renderable image.

Specified by:
drawRenderableImage in class Graphics2D
Parameters:
img - the renderable image.
xform - the transform.

drawImage

public boolean drawImage(Image img,
                         AffineTransform xform,
                         ImageObserver obs)
Draws an image with the specified transform. Note that the observer is ignored.

Specified by:
drawImage in class Graphics2D
Parameters:
img - the image.
xform - the transform.
obs - the image observer (ignored).
Returns:
true if the image is drawn.

drawImage

public void drawImage(BufferedImage img,
                      BufferedImageOp op,
                      int x,
                      int y)
Draws the image resulting from applying the BufferedImageOp to the specified image at the location (x, y).

Specified by:
drawImage in class Graphics2D
Parameters:
img - the image.
op - the operation.
x - the x-coordinate.
y - the y-coordinate.

copyArea

public void copyArea(int x,
                     int y,
                     int width,
                     int height,
                     int dx,
                     int dy)
This method does nothing. The operation assumes that the output is in bitmap form, which is not the case for SVG, so we silently ignore this method call.

Specified by:
copyArea in class Graphics
Parameters:
x - the x-coordinate.
y - the y-coordinate.
width - the width of the area.
height - the height of the area.
dx - the delta x.
dy - the delta y.

dispose

public void dispose()
This method does nothing, there are no resources to dispose.

Specified by:
dispose in class Graphics

getSVGElement

public String getSVGElement()
Returns the SVG element that has been generated by calls to this Graphics2D implementation.

Returns:
The SVG element.

getSVGElement

public String getSVGElement(String id)
Returns the SVG element that has been generated by calls to this Graphics2D implementation, giving it the specified id. If id is null, the element will have no id attribute.

Parameters:
id - the element id (null permitted).
Returns:
A string containing the SVG element.
Since:
1.8

getSVGDocument

public String getSVGDocument()
Returns an SVG document.

Returns:
An SVG document.

getSVGImages

public List<ImageElement> getSVGImages()
Returns the list of image elements that have been referenced in the SVG output but not embedded. If the image files don't already exist, you can use this list as the basis for creating the image files.

Returns:
The list of image elements.
See Also:
SVGHints.KEY_IMAGE_HANDLING

getElementIDs

public Set<String> getElementIDs()
Returns a new set containing the element IDs that have been used in output so far.

Returns:
The element IDs.
Since:
1.5


Copyright © 2015. All rights reserved.