FreeHEP API
Version v1.1

org.freehep.graphicsio.svg
Class SVGGraphics2D

java.lang.Object
  |
  +--java.awt.Graphics
        |
        +--java.awt.Graphics2D
              |
              +--org.freehep.graphics2d.VectorGraphics
                    |
                    +--org.freehep.graphics2d.AbstractVectorGraphics
                          |
                          +--org.freehep.graphicsio.VectorGraphicsIO
                                |
                                +--org.freehep.graphicsio.AbstractVectorGraphicsIO
                                      |
                                      +--org.freehep.graphicsio.svg.SVGGraphics2D
All Implemented Interfaces:
VectorGraphicsConstants

public class SVGGraphics2D
extends AbstractVectorGraphicsIO

This class implements the Scalable Vector Graphics output. SVG specifications can be found at http://www.w3c.org/Graphics/SVG/ The current implementation is based on REC-SVG-20010904 but can generate also files for the older specs CR-SVG-20000802, WD-SVG-20000303

Version:
$Id: SVGGraphics2D.java,v 1.6 2002/09/04 21:59:58 duns Exp $
Author:
Mark Donszelmann

Field Summary
protected  int pngCompressionLevel
           
protected  int pngFilter
           
static String version
           
 
Fields inherited from interface org.freehep.graphics2d.VectorGraphicsConstants
NUMBER_OF_HORIZ_ALIGNMENTS, NUMBER_OF_SYMBOLS, NUMBER_OF_VERTICAL_ALIGNMENTS, SYMBOL_BOX, SYMBOL_CIRCLE, SYMBOL_CROSS, SYMBOL_DIAMOND, SYMBOL_DN_TRIANGLE, SYMBOL_HLINE, SYMBOL_PLUS, SYMBOL_STAR, SYMBOL_UP_TRIANGLE, SYMBOL_VLINE, TEXT_BASELINE, TEXT_BOTTOM, TEXT_CENTER, TEXT_LEFT, TEXT_RIGHT, TEXT_TOP
 
Constructor Summary
  SVGGraphics2D(File file, Component component)
           
  SVGGraphics2D(File file, Dimension size)
           
  SVGGraphics2D(OutputStream os, Component component)
           
  SVGGraphics2D(OutputStream os, Dimension size)
           
protected SVGGraphics2D(SVGGraphics2D graphics, boolean doRestoreOnDispose)
           
 
Method Summary
 void closeStream()
          Called to close the stream you are writing to.
 void copyArea(int x, int y, int width, int height, int dx, int dy)
           
 Graphics create()
           
 Graphics create(double x, double y, double width, double height)
           
 void draw(Shape shape)
           
 void drawArc(double x, double y, double width, double height, double startAngle, double arcAngle)
          Draws an arc.
 void drawGlyphVector(GlyphVector g, float x, float y)
           
 void drawLine(double x1, double y1, double x2, double y2)
          Draws a straight line.
 void drawOval(double x, double y, double width, double height)
          Draws an oval.
 void drawPolygon(double[] xPoints, double[] yPoints, int nPoints)
          Draws a polygon.
 void drawPolygon(int[] xPoints, int[] yPoints, int nPoints)
           
 void drawPolygon(Polygon p)
           
 void drawPolyline(double[] xPoints, double[] yPoints, int nPoints)
          Draws a polyline.
 void drawPolyline(int[] xPoints, int[] yPoints, int nPoints)
           
 void drawRect(double x, double y, double width, double height)
          Draws a rectangle.
 void drawRenderedImage(RenderedImage img, AffineTransform xform)
          Draws a rendered image using a transform.
 void drawRoundRect(double x, double y, double width, double height, double arcWidth, double arcHeight)
          Draws a rounded rectangle.
 void drawString(AttributedCharacterIterator iterator, float x, float y)
           
 void drawString(String str, double x, double y)
          Draws a string.
 void drawString(String str, double x, double y, int horizontal, int vertical, boolean framed, Color frameColor, double frameWidth, boolean banner, Color bannerColor)
          Draws a string with a lot of parameters.
 void drawString(TagString str, double x, double y, int horizontal, int vertical, boolean framed, Color frameColor, double frameWidth, boolean banner, Color bannerColor)
          Draws a TagString with a lot of parameters.
 void fill(Shape shape)
           
 void fillAndDraw(Shape shape, Color fillColor)
           
 void fillArc(double x, double y, double width, double height, double startAngle, double arcAngle)
          Fills an arc.
 void fillOval(double x, double y, double width, double height)
          Fills an oval.
 void fillPolygon(double[] xPoints, double[] yPoints, int nPoints)
          Fills a polygon.
 void fillPolygon(int[] xPoints, int[] yPoints, int nPoints)
           
 void fillPolygon(Polygon p)
           
 void fillRect(double x, double y, double width, double height)
          Fills a rectangle.
 void fillRoundRect(double x, double y, double width, double height, double arcWidth, double arcHeight)
          Fills a rounded rectangle.
 GraphicsConfiguration getDeviceConfiguration()
           
 boolean hit(Rectangle rect, Shape s, boolean onStroke)
           
 void setBoundingBox()
          Get the bounding box for this image.
 void setCompressed(boolean isCompressed)
           
 void setFont(Font font)
          Method sets the current font.
 void setForComment(String forComment)
          Set the string used in the "For:" comment of the EPS file.
 void setImageCompressionLevel(int level)
           
 void setImageFilter(int filter)
           
 void setImageSuffix(String suffix)
           
 void setPageFormat(int x, int y, int width, int height)
          Set the page layout
 void setPaintMode()
           
 void setSpec(String name)
           
 void setStylable(boolean state)
           
 void setTitleComment(String titleComment)
          Set the string used in the "Title:" comment of the EPS file.
 void setXORMode(Color c1)
           
 String toString()
           
protected  void writeCap(int cap)
          Writes out the cap of the stroke.
protected  void writeClip(Rectangle2D r2d)
          Write out Rectangle2D clip.
protected  void writeClip(Shape s)
          Write out Shape clip.
 void writeComment(String s)
          Called to Write out a comment.
protected  void writeDash(double[] dash, double phase)
          Writes out the dash of the stroke.
 void writeDefs()
           
protected  void writeGraphicsRestore()
          Writes out the restore of a graphics context.
protected  void writeGraphicsSave()
          Writes out the save of a graphics context for a later restore.
 void writeHeader()
          Write out the header of this SVG file.
 boolean writeImage(Image image, int x, int y, int width, int height, boolean mask, ImageObserver observer)
          Writes out (transparent) image.
protected  void writeJoin(int join)
          Writes out the join of the stroke.
protected  void writeMiterLimit(float limit)
          Writes out the miter limit of the stroke.
protected  void writePaint(Color c)
          Writes out paint as the given color.
protected  void writePaint(GradientPaint paint)
          Writes out paint as the given gradient.
protected  void writePaint(Paint p)
          Writes out paint.
protected  void writePaint(TexturePaint p)
          Writes out paint as the given texture.
 void writeSetup()
           
 void writeTrailer()
          Called to write the trailing part of the output.
protected  void writeTransform(AffineTransform transform)
          Writes out the transform as it needs to be concatenated to the internal transform of the output format.
protected  void writeWidth(float width)
          Writes out the width of the stroke.
 
Methods inherited from class org.freehep.graphicsio.AbstractVectorGraphicsIO
addRenderingHints, clearRect, clip, clipRect, clipRect, createShape, dispose, drawImage, drawImage, endExport, fixedPrecision, getClip, getClipBounds, getClipBounds, getComposite, getFont, getFontMetrics, getFontRenderContext, getRenderingHint, getRenderingHints, getSize, getStroke, getTransform, handleException, printComment, resetClip, rotate, scale, setClip, setClip, setClip, setColor, setComposite, setPaint, setRenderingHint, setRenderingHints, setStroke, setTransform, shear, startExport, transform, translate, writeClip, writeError, writeGraphicsState, writeSetClip, writeStroke, writeWarning, writeWarning
 
Methods inherited from class org.freehep.graphicsio.VectorGraphicsIO
copyResourceTo, copyResourceTo
 
Methods inherited from class org.freehep.graphics2d.AbstractVectorGraphics
clearRect, createShape, drawArc, drawImage, drawImage, drawImage, drawImage, drawImage, drawImage, drawLine, drawOval, drawRect, drawRenderableImage, drawRoundRect, drawString, drawString, drawString, drawString, drawString, drawString, drawSymbol, drawSymbol, fillArc, fillOval, fillRect, fillRoundRect, fillSymbol, fillSymbol, getBackground, getColor, getColorMode, getCreator, getPaint, getPrintColor, isDeviceIndependent, rotate, setBackground, setColorMode, setCreator, setDeviceIndependent, setLineWidth, setLineWidth, translate
 
Methods inherited from class org.freehep.graphics2d.VectorGraphics
create, create, getSymbol, getTextAlignment, getXalignment, getYalignment
 
Methods inherited from class java.awt.Graphics2D
draw3DRect, fill3DRect
 
Methods inherited from class java.awt.Graphics
drawBytes, drawChars, finalize, getClipRect, getFontMetrics, hitClip
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

version

public static final String version
See Also:
Constant Field Values

pngFilter

protected int pngFilter

pngCompressionLevel

protected int pngCompressionLevel
Constructor Detail

SVGGraphics2D

public SVGGraphics2D(File file,
                     Dimension size)
              throws IOException

SVGGraphics2D

public SVGGraphics2D(File file,
                     Component component)
              throws IOException

SVGGraphics2D

public SVGGraphics2D(OutputStream os,
                     Dimension size)
              throws IOException

SVGGraphics2D

public SVGGraphics2D(OutputStream os,
                     Component component)
              throws IOException

SVGGraphics2D

protected SVGGraphics2D(SVGGraphics2D graphics,
                        boolean doRestoreOnDispose)
Method Detail

setCompressed

public void setCompressed(boolean isCompressed)

setPageFormat

public void setPageFormat(int x,
                          int y,
                          int width,
                          int height)
Set the page layout


setForComment

public void setForComment(String forComment)
Set the string used in the "For:" comment of the EPS file.


setTitleComment

public void setTitleComment(String titleComment)
Set the string used in the "Title:" comment of the EPS file.


setBoundingBox

public void setBoundingBox()
Get the bounding box for this image.


setSpec

public void setSpec(String name)

setStylable

public void setStylable(boolean state)

setImageSuffix

public void setImageSuffix(String suffix)

setImageFilter

public void setImageFilter(int filter)

setImageCompressionLevel

public void setImageCompressionLevel(int level)

writeHeader

public void writeHeader()
                 throws IOException
Write out the header of this SVG file.

Specified by:
writeHeader in class AbstractVectorGraphicsIO
IOException

writeDefs

public void writeDefs()
               throws IOException
IOException

writeSetup

public void writeSetup()
                throws IOException
IOException

writeTrailer

public void writeTrailer()
                  throws IOException
Description copied from class: AbstractVectorGraphicsIO
Called to write the trailing part of the output.

Specified by:
writeTrailer in class AbstractVectorGraphicsIO
IOException

closeStream

public void closeStream()
                 throws IOException
Description copied from class: AbstractVectorGraphicsIO
Called to close the stream you are writing to.

Specified by:
closeStream in class AbstractVectorGraphicsIO
IOException

create

public Graphics create()
Specified by:
create in class VectorGraphics

create

public Graphics create(double x,
                       double y,
                       double width,
                       double height)
Specified by:
create in class VectorGraphics

writeGraphicsSave

protected void writeGraphicsSave()
                          throws IOException
Description copied from class: AbstractVectorGraphicsIO
Writes out the save of a graphics context for a later restore. Some implementations keep track of this by hand if the output format does not support it.

Specified by:
writeGraphicsSave in class AbstractVectorGraphicsIO
IOException

writeGraphicsRestore

protected void writeGraphicsRestore()
                             throws IOException
Description copied from class: AbstractVectorGraphicsIO
Writes out the restore of a graphics context. Some implementations keep track of this by hand if the output format does not support it.

Specified by:
writeGraphicsRestore in class AbstractVectorGraphicsIO
IOException

drawLine

public void drawLine(double x1,
                     double y1,
                     double x2,
                     double y2)
Description copied from class: VectorGraphics
Draws a straight line. Uses Line2D to call draw(Shape).

Overrides:
drawLine in class AbstractVectorGraphics

drawRect

public void drawRect(double x,
                     double y,
                     double width,
                     double height)
Description copied from class: VectorGraphics
Draws a rectangle. Uses Rectangle2D to call draw(Shape).

Overrides:
drawRect in class AbstractVectorGraphics

fillRect

public void fillRect(double x,
                     double y,
                     double width,
                     double height)
Description copied from class: VectorGraphics
Fills a rectangle. Uses Rectangle2D to call fill(Shape).

Overrides:
fillRect in class AbstractVectorGraphics

drawRoundRect

public void drawRoundRect(double x,
                          double y,
                          double width,
                          double height,
                          double arcWidth,
                          double arcHeight)
Description copied from class: VectorGraphics
Draws a rounded rectangle. Uses RoundRectangle2D to call draw(Shape).

Overrides:
drawRoundRect in class AbstractVectorGraphics

fillRoundRect

public void fillRoundRect(double x,
                          double y,
                          double width,
                          double height,
                          double arcWidth,
                          double arcHeight)
Description copied from class: VectorGraphics
Fills a rounded rectangle. Uses RoundRectangle2D to call fill(Shape).

Overrides:
fillRoundRect in class AbstractVectorGraphics

drawPolyline

public void drawPolyline(int[] xPoints,
                         int[] yPoints,
                         int nPoints)
Overrides:
drawPolyline in class AbstractVectorGraphics

drawPolyline

public void drawPolyline(double[] xPoints,
                         double[] yPoints,
                         int nPoints)
Description copied from class: VectorGraphics
Draws a polyline. Uses createShape(...) to call draw(Shape).

Overrides:
drawPolyline in class AbstractVectorGraphics

drawPolygon

public void drawPolygon(int[] xPoints,
                        int[] yPoints,
                        int nPoints)
Overrides:
drawPolygon in class AbstractVectorGraphics

drawPolygon

public void drawPolygon(double[] xPoints,
                        double[] yPoints,
                        int nPoints)
Description copied from class: VectorGraphics
Draws a polygon. Uses createShape(...) to call draw(Shape).

Overrides:
drawPolygon in class AbstractVectorGraphics

drawPolygon

public void drawPolygon(Polygon p)
Overrides:
drawPolygon in class Graphics

fillPolygon

public void fillPolygon(int[] xPoints,
                        int[] yPoints,
                        int nPoints)
Overrides:
fillPolygon in class AbstractVectorGraphics

fillPolygon

public void fillPolygon(double[] xPoints,
                        double[] yPoints,
                        int nPoints)
Description copied from class: VectorGraphics
Fills a polygon. Uses createShape(...) to call fill(Shape).

Overrides:
fillPolygon in class AbstractVectorGraphics

fillPolygon

public void fillPolygon(Polygon p)
Overrides:
fillPolygon in class Graphics

drawArc

public void drawArc(double x,
                    double y,
                    double width,
                    double height,
                    double startAngle,
                    double arcAngle)
Description copied from class: VectorGraphics
Draws an arc. Uses Arc2D to call draw(Shape).

Overrides:
drawArc in class AbstractVectorGraphics

fillArc

public void fillArc(double x,
                    double y,
                    double width,
                    double height,
                    double startAngle,
                    double arcAngle)
Description copied from class: VectorGraphics
Fills an arc. Uses Arc2D to call fill(Shape).

Overrides:
fillArc in class AbstractVectorGraphics

drawOval

public void drawOval(double x,
                     double y,
                     double width,
                     double height)
Description copied from class: VectorGraphics
Draws an oval. Uses Ellipse2D to call draw(Shape).

Overrides:
drawOval in class AbstractVectorGraphics

fillOval

public void fillOval(double x,
                     double y,
                     double width,
                     double height)
Description copied from class: VectorGraphics
Fills an oval. Uses Ellipse2D to call fill(Shape).

Overrides:
fillOval in class AbstractVectorGraphics

draw

public void draw(Shape shape)
Specified by:
draw in class VectorGraphics

fill

public void fill(Shape shape)
Specified by:
fill in class VectorGraphics

fillAndDraw

public void fillAndDraw(Shape shape,
                        Color fillColor)
Specified by:
fillAndDraw in class VectorGraphics

copyArea

public void copyArea(int x,
                     int y,
                     int width,
                     int height,
                     int dx,
                     int dy)
Specified by:
copyArea in class VectorGraphics

drawRenderedImage

public void drawRenderedImage(RenderedImage img,
                              AffineTransform xform)
Description copied from class: AbstractVectorGraphicsIO
Draws a rendered image using a transform.

Specified by:
drawRenderedImage in class AbstractVectorGraphicsIO
Parameters:
img - to be drawn
xform - transform to be used on the image

writeImage

public boolean writeImage(Image image,
                          int x,
                          int y,
                          int width,
                          int height,
                          boolean mask,
                          ImageObserver observer)
                   throws IOException
Description copied from class: AbstractVectorGraphicsIO
Writes out (transparent) image.

Specified by:
writeImage in class AbstractVectorGraphicsIO
Parameters:
image - image to be written
mask - true if image masks background
observer - for updates if image still incomplete
Returns:
true if successful
IOException

drawString

public void drawString(String str,
                       double x,
                       double y)
Description copied from class: VectorGraphics
Draws a string.

Specified by:
drawString in class VectorGraphics

drawString

public void drawString(String str,
                       double x,
                       double y,
                       int horizontal,
                       int vertical,
                       boolean framed,
                       Color frameColor,
                       double frameWidth,
                       boolean banner,
                       Color bannerColor)
Description copied from class: VectorGraphics
Draws a string with a lot of parameters.

Specified by:
drawString in class VectorGraphics
Parameters:
framed - true if text is surrounded by a frame
frameColor - color of the frame
frameWidth - witdh of the frame
banner - true if the frame is filled by a banner
bannerColor - color of the banner

drawString

public void drawString(TagString str,
                       double x,
                       double y,
                       int horizontal,
                       int vertical,
                       boolean framed,
                       Color frameColor,
                       double frameWidth,
                       boolean banner,
                       Color bannerColor)
Description copied from class: VectorGraphics
Draws a TagString with a lot of parameters.

Specified by:
drawString in class VectorGraphics
Parameters:
framed - true if text is surrounded by a frame
frameColor - color of the frame
frameWidth - witdh of the frame
banner - true if the frame is filled by a banner
bannerColor - color of the banner

drawString

public void drawString(AttributedCharacterIterator iterator,
                       float x,
                       float y)
Specified by:
drawString in class VectorGraphics

drawGlyphVector

public void drawGlyphVector(GlyphVector g,
                            float x,
                            float y)
Specified by:
drawGlyphVector in class VectorGraphics

writeTransform

protected void writeTransform(AffineTransform transform)
                       throws IOException
Description copied from class: AbstractVectorGraphicsIO
Writes out the transform as it needs to be concatenated to the internal transform of the output format. If there is no implementation of an internal transform, then this method needs to do nothing, BUT all coordinates need to be transformed by the currentTransform before being written out.

Specified by:
writeTransform in class AbstractVectorGraphicsIO
Parameters:
transform - to be written
IOException

writeClip

protected void writeClip(Rectangle2D r2d)
                  throws IOException
Description copied from class: AbstractVectorGraphicsIO
Write out Rectangle2D clip.

Specified by:
writeClip in class AbstractVectorGraphicsIO
Parameters:
r2d - to be used for clipping
IOException

writeClip

protected void writeClip(Shape s)
                  throws IOException
Description copied from class: AbstractVectorGraphicsIO
Write out Shape clip.

Specified by:
writeClip in class AbstractVectorGraphicsIO
Parameters:
s - to be used for clipping
IOException

writeWidth

protected void writeWidth(float width)
                   throws IOException
Description copied from class: AbstractVectorGraphicsIO
Writes out the width of the stroke.

Overrides:
writeWidth in class AbstractVectorGraphicsIO
Parameters:
width - of the stroke
IOException

writeCap

protected void writeCap(int cap)
                 throws IOException
Description copied from class: AbstractVectorGraphicsIO
Writes out the cap of the stroke.

Overrides:
writeCap in class AbstractVectorGraphicsIO
Parameters:
cap - of the stroke
IOException

writeJoin

protected void writeJoin(int join)
                  throws IOException
Description copied from class: AbstractVectorGraphicsIO
Writes out the join of the stroke.

Overrides:
writeJoin in class AbstractVectorGraphicsIO
Parameters:
join - of the stroke
IOException

writeMiterLimit

protected void writeMiterLimit(float limit)
                        throws IOException
Description copied from class: AbstractVectorGraphicsIO
Writes out the miter limit of the stroke.

Overrides:
writeMiterLimit in class AbstractVectorGraphicsIO
IOException

writeDash

protected void writeDash(double[] dash,
                         double phase)
                  throws IOException
Description copied from class: AbstractVectorGraphicsIO
Writes out the dash of the stroke.

Overrides:
writeDash in class AbstractVectorGraphicsIO
Parameters:
dash - dash pattern, empty array is solid line
phase - of the dash pattern
IOException

setPaintMode

public void setPaintMode()
Specified by:
setPaintMode in class VectorGraphics

setXORMode

public void setXORMode(Color c1)
Specified by:
setXORMode in class VectorGraphics

writePaint

protected void writePaint(Color c)
                   throws IOException
Description copied from class: AbstractVectorGraphicsIO
Writes out paint as the given color.

Specified by:
writePaint in class AbstractVectorGraphicsIO
Parameters:
c - to be written
IOException

writePaint

protected void writePaint(GradientPaint paint)
                   throws IOException
Description copied from class: AbstractVectorGraphicsIO
Writes out paint as the given gradient.

Specified by:
writePaint in class AbstractVectorGraphicsIO
Parameters:
paint - to be written
IOException

writePaint

protected void writePaint(TexturePaint p)
                   throws IOException
Description copied from class: AbstractVectorGraphicsIO
Writes out paint as the given texture.

Specified by:
writePaint in class AbstractVectorGraphicsIO
Parameters:
p - to be written
IOException

writePaint

protected void writePaint(Paint p)
                   throws IOException
Description copied from class: AbstractVectorGraphicsIO
Writes out paint.

Specified by:
writePaint in class AbstractVectorGraphicsIO
Parameters:
p - to be written
IOException

setFont

public void setFont(Font font)
Method sets the current font. This method makes a reasonable guess for the desired SVG font since the names of the actual SVG fonts is implementation dependent. Currently, this tries to identify Helvetica, Times, Courier, Symbol, and ZapfDingbats fonts. If all else fails, Helvetica is used.

Overrides:
setFont in class AbstractVectorGraphicsIO
Parameters:
font - to be set

getDeviceConfiguration

public GraphicsConfiguration getDeviceConfiguration()
Specified by:
getDeviceConfiguration in class VectorGraphics

hit

public boolean hit(Rectangle rect,
                   Shape s,
                   boolean onStroke)
Specified by:
hit in class VectorGraphics

writeComment

public void writeComment(String s)
                  throws IOException
Description copied from class: AbstractVectorGraphicsIO
Called to Write out a comment.

Specified by:
writeComment in class AbstractVectorGraphicsIO
Parameters:
s - to be written
IOException

toString

public String toString()
Specified by:
toString in class VectorGraphics

FreeHEP API
Version v1.1

Copyright © 2000-2002 FreeHEP, All Rights Reserved.