Package net.codecrete.qrbill.canvas
Class SVGCanvas
java.lang.Object
net.codecrete.qrbill.canvas.AbstractCanvas
net.codecrete.qrbill.canvas.SVGCanvas
- All Implemented Interfaces:
Closeable,AutoCloseable,ByteArrayResult,Canvas
Canvas for generating SVG files.
-
Nested Class Summary
Nested classes/interfaces inherited from interface net.codecrete.qrbill.canvas.Canvas
Canvas.LineStyle -
Field Summary
Fields inherited from class net.codecrete.qrbill.canvas.AbstractCanvas
fontMetrics, MM_TO_PT -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddRectangle(double x, double y, double width, double height) Adds a rectangle to the pathvoidclose()voidCloses the current subpathvoidcubicCurveTo(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.voidfillPath(int color, boolean smoothing) Fills the current path and ends itvoidlineTo(double x, double y) Adds a line segment to the open path from the previous point to the specified position.voidmoveTo(double x, double y) Moves the current point of the open path to the specified position.voidAdds text to the graphics.voidSaves the resulting SVG image to the specified path.voidsetTransformation(double translateX, double translateY, double rotate, double scaleX, double scaleY) Sets a translation, rotation and scaling for the subsequent operationsvoidStarts a path that can be filled or strokedvoidstrokePath(double strokeWidth, int color, Canvas.LineStyle lineStyle, boolean smoothing) Strokes the current path and ends itbyte[]Gets the resulting graphics as a byte array.voidwriteTo(OutputStream os) Writes the resulting SVG image to the specified output stream.Methods inherited from class net.codecrete.qrbill.canvas.AbstractCanvas
getAscender, getDescender, getLineHeight, getTextWidth, putTextLines, setupFontMetrics, splitLines
-
Constructor Details
-
SVGCanvas
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 mmheight- height of image, in mmfontFamilyList- font family list (comma separated list, CSS syntax)- Throws:
IOException- thrown if the instance cannot be created
-
-
Method Details
-
close
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Throws:
IOException
-
startPath
Description copied from interface:CanvasStarts a path that can be filled or stroked- Specified by:
startPathin interfaceCanvas- Throws:
IOException- thrown if the graphics cannot be generated
-
moveTo
Description copied from interface:CanvasMoves the current point of the open path to the specified position.- Specified by:
moveToin interfaceCanvas- Parameters:
x- x-coordinate of positiony- y-coordinate of position- Throws:
IOException- thrown if the graphics cannot be generated
-
lineTo
Description copied from interface:CanvasAdds a line segment to the open path from the previous point to the specified position.- Specified by:
lineToin interfaceCanvas- Parameters:
x- x-coordinate of positiony- y-coordinate of position- Throws:
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 IOException Description copied from interface:CanvasAdds 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:
cubicCurveToin interfaceCanvas- Parameters:
x1- x-coordinate of first control pointy1- y-coordinate of first control pointx2- x-coordinate of second control pointy2- y-coordinate of second control pointx- x-coordinate of positiony- y-coordinate of position- Throws:
IOException- thrown if the graphics cannot be generated
-
addRectangle
Description copied from interface:CanvasAdds a rectangle to the path- Specified by:
addRectanglein interfaceCanvas- 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:
IOException- thrown if the graphics cannot be generated
-
closeSubpath
Description copied from interface:CanvasCloses the current subpath- Specified by:
closeSubpathin interfaceCanvas- Throws:
IOException- thrown if the graphics cannot be generated
-
fillPath
Description copied from interface:CanvasFills the current path and ends it- Specified by:
fillPathin interfaceCanvas- Parameters:
color- the fill color (expressed similar to HTML, e.g. 0xffffff for white)smoothing-truefor using smoothing techniques such as antialiasing,falseotherwise- Throws:
IOException- thrown if the graphics cannot be generated
-
strokePath
public void strokePath(double strokeWidth, int color, Canvas.LineStyle lineStyle, boolean smoothing) throws IOException Description copied from interface:CanvasStrokes the current path and ends it- Specified by:
strokePathin interfaceCanvas- Parameters:
strokeWidth- the stroke width (in pt)color- the stroke color (expressed similar to HTML, e.g. 0xffffff for white)lineStyle- the line stylesmoothing-truefor using smoothing techniques such as antialiasing,falseotherwise- Throws:
IOException- thrown if the graphics cannot be generated
-
putText
public void putText(String text, double x, double y, int fontSize, boolean isBold) throws IOException Description copied from interface:CanvasAdds text to the graphics.The text position refers to the left most point on the text's baseline.
- Specified by:
putTextin interfaceCanvas- Parameters:
text- the textx- 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:
IOException- thrown if the graphics cannot be generated
-
setTransformation
public void setTransformation(double translateX, double translateY, double rotate, double scaleX, double scaleY) throws IOException Description copied from interface:CanvasSets a translation, rotation and scaling for the subsequent operationsBefore 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:
setTransformationin interfaceCanvas- Parameters:
translateX- translation in x direction (in mm)translateY- translation in y direction (in mm)rotate- rotation angle, in radiansscaleX- scale factor in x direction (1.0 = no scaling)scaleY- scale factor in y direction (1.0 = no scaling)- Throws:
IOException- thrown if the graphics cannot be generated
-
toByteArray
Description copied from interface:ByteArrayResultGets the resulting graphics as a byte array.- Specified by:
toByteArrayin interfaceByteArrayResult- Returns:
- the byte array
- Throws:
IOException- thrown if the construction of the byte array fails
-
writeTo
Writes the resulting SVG image to the specified output stream.- Parameters:
os- the output stream- Throws:
IOException- thrown if the image cannot be written
-
saveAs
Saves the resulting SVG image to the specified path.- Parameters:
path- the path to write to- Throws:
IOException- thrown if the image cannot be written
-