Class SVGCanvas

    • Nested Class Summary

    • Constructor Summary

      Constructors 
      Constructor Description
      SVGCanvas​(double width, double height, java.lang.String fontFamilyList)
      Creates a new instance of the specified size.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addRectangle​(double x, double y, double width, double height)
      Adds a rectangle to the path
      void close()  
      void closeSubpath()
      Closes the current subpath
      void cubicCurveTo​(double x1, double y1, double x2, double y2, double x, double y)
      Adds a cubic Beziér curve to the open path going from the previous point to the specified position.
      void fillPath​(int color)
      Fills the current path and ends it
      void lineTo​(double x, double y)
      Adds a line segment to the open path from the previous point to the specified position.
      void moveTo​(double x, double y)
      Moves the current point of the open path to the specified position.
      void putText​(java.lang.String text, double x, double y, int fontSize, boolean isBold)
      Adds text to the graphics.
      void saveAs​(java.nio.file.Path path)
      Saves the resulting SVG image to the specified path.
      void setTransformation​(double translateX, double translateY, double rotate, double scaleX, double scaleY)
      Sets a translation, rotation and scaling for the subsequent operations
      void startPath()
      Starts a path that can be filled or stroked
      void strokePath​(double strokeWidth, int color)
      Strokes the current path and ends it
      void strokePath​(double strokeWidth, int color, Canvas.LineStyle lineStyle)
      Strokes the current path and ends it
      byte[] toByteArray()
      Gets the resulting graphics as a byte array.
      void writeTo​(java.io.OutputStream os)
      Writes the resulting SVG image to the specified output stream.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • SVGCanvas

        public SVGCanvas​(double width,
                         double height,
                         java.lang.String fontFamilyList)
                  throws java.io.IOException
        Creates a new instance of the specified size.

        For all text, the specified font family list will be used.

        Parameters:
        width - width of image, in mm
        height - height of image, in mm
        fontFamilyList - font family list (comma separated list, CSS syntax)
        Throws:
        java.io.IOException - thrown if the instance cannot be created
    • Method Detail

      • close

        public void close()
                   throws java.io.IOException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Throws:
        java.io.IOException
      • startPath

        public void startPath()
                       throws java.io.IOException
        Description copied from interface: Canvas
        Starts a path that can be filled or stroked
        Specified by:
        startPath in interface Canvas
        Throws:
        java.io.IOException - thrown if the graphics cannot be generated
      • moveTo

        public void moveTo​(double x,
                           double y)
                    throws java.io.IOException
        Description copied from interface: Canvas
        Moves the current point of the open path to the specified position.
        Specified by:
        moveTo in interface Canvas
        Parameters:
        x - x-coordinate of position
        y - y-coordinate of position
        Throws:
        java.io.IOException - thrown if the graphics cannot be generated
      • lineTo

        public void lineTo​(double x,
                           double y)
                    throws java.io.IOException
        Description copied from interface: Canvas
        Adds a line segment to the open path from the previous point to the specified position.
        Specified by:
        lineTo in interface Canvas
        Parameters:
        x - x-coordinate of position
        y - y-coordinate of position
        Throws:
        java.io.IOException - thrown if the graphics cannot be generated
      • cubicCurveTo

        public void cubicCurveTo​(double x1,
                                 double y1,
                                 double x2,
                                 double y2,
                                 double x,
                                 double y)
                          throws java.io.IOException
        Description copied from interface: Canvas
        Adds a cubic Beziér curve to the open path going from the previous point to the specified position. Two control points control the curve
        Specified by:
        cubicCurveTo in interface Canvas
        Parameters:
        x1 - x-coordinate of first control point
        y1 - y-coordinate of first control point
        x2 - x-coordinate of second control point
        y2 - y-coordinate of second control point
        x - x-coordinate of position
        y - y-coordinate of position
        Throws:
        java.io.IOException - thrown if the graphics cannot be generated
      • addRectangle

        public void addRectangle​(double x,
                                 double y,
                                 double width,
                                 double height)
                          throws java.io.IOException
        Description copied from interface: Canvas
        Adds a rectangle to the path
        Specified by:
        addRectangle in interface Canvas
        Parameters:
        x - the rectangle's left position (in mm)
        y - the rectangle's top position (in mm)
        width - the rectangle's width (in mm)
        height - rectangle's height (in mm)
        Throws:
        java.io.IOException - thrown if the graphics cannot be generated
      • closeSubpath

        public void closeSubpath()
                          throws java.io.IOException
        Description copied from interface: Canvas
        Closes the current subpath
        Specified by:
        closeSubpath in interface Canvas
        Throws:
        java.io.IOException - thrown if the graphics cannot be generated
      • fillPath

        public void fillPath​(int color)
                      throws java.io.IOException
        Description copied from interface: Canvas
        Fills the current path and ends it
        Specified by:
        fillPath in interface Canvas
        Parameters:
        color - the fill color (expressed similar to HTML, e.g. 0xffffff for white)
        Throws:
        java.io.IOException - thrown if the graphics cannot be generated
      • strokePath

        public void strokePath​(double strokeWidth,
                               int color)
                        throws java.io.IOException
        Description copied from interface: Canvas
        Strokes the current path and ends it

        The path is stroked with a solid line.

        Specified by:
        strokePath in interface Canvas
        Parameters:
        strokeWidth - the stroke width (in pt)
        color - the stroke color (expressed similar to HTML, e.g. 0xffffff for white)
        Throws:
        java.io.IOException - thrown if the graphics cannot be generated
      • strokePath

        public void strokePath​(double strokeWidth,
                               int color,
                               Canvas.LineStyle lineStyle)
                        throws java.io.IOException
        Description copied from interface: Canvas
        Strokes the current path and ends it
        Specified by:
        strokePath in interface Canvas
        Parameters:
        strokeWidth - the stroke width (in pt)
        color - the stroke color (expressed similar to HTML, e.g. 0xffffff for white)
        lineStyle - the line style
        Throws:
        java.io.IOException - thrown if the graphics cannot be generated
      • putText

        public void putText​(java.lang.String text,
                            double x,
                            double y,
                            int fontSize,
                            boolean isBold)
                     throws java.io.IOException
        Description copied from interface: Canvas
        Adds text to the graphics.

        The text position refers to the left most point on the text's baseline.

        Specified by:
        putText in interface Canvas
        Parameters:
        text - the text
        x - x position of the text's start (in mm)
        y - y position of the text's top (in mm)
        fontSize - the font size (in pt)
        isBold - indicates if the text is in bold or regular weight
        Throws:
        java.io.IOException - thrown if the graphics cannot be generated
      • setTransformation

        public void setTransformation​(double translateX,
                                      double translateY,
                                      double rotate,
                                      double scaleX,
                                      double scaleY)
                               throws java.io.IOException
        Description copied from interface: Canvas
        Sets a translation, rotation and scaling for the subsequent operations

        Before a new translation is applied, the coordinate system is reset to it's original state.

        The transformations are applied in the order translation, rotation, scaling.

        Specified by:
        setTransformation in interface Canvas
        Parameters:
        translateX - translation in x direction (in mm)
        translateY - translation in y direction (in mm)
        rotate - rotation angle, in radians
        scaleX - scale factor in x direction (1.0 = no scaling)
        scaleY - scale factor in y direction (1.0 = no scaling)
        Throws:
        java.io.IOException - thrown if the graphics cannot be generated
      • toByteArray

        public byte[] toByteArray()
                           throws java.io.IOException
        Description copied from interface: ByteArrayResult
        Gets the resulting graphics as a byte array.
        Specified by:
        toByteArray in interface ByteArrayResult
        Returns:
        the byte array
        Throws:
        java.io.IOException - thrown if the construction of the byte array fails
      • writeTo

        public void writeTo​(java.io.OutputStream os)
                     throws java.io.IOException
        Writes the resulting SVG image to the specified output stream.
        Parameters:
        os - the output stream
        Throws:
        java.io.IOException - thrown if the image cannot be written
      • saveAs

        public void saveAs​(java.nio.file.Path path)
                    throws java.io.IOException
        Saves the resulting SVG image to the specified path.
        Parameters:
        path - the path to write to
        Throws:
        java.io.IOException - thrown if the image cannot be written