The context always has a current default path. There is only one current path, it is not part of the drawing state. Resets the current path, and move the cursor to (x, y).
Close the path, returning to the initial first point. TODO: specify exactly what it does.
Draws an image at the given position.
Draws an image at the given position, with the given width and height. Both width and height must be provided.
Fills the subpaths of the current path or the given path with the current fill style. Uses the last set fill style, line width for the whole path.
Both fills and strokes the subpaths of the current path, in a more efficient way than calling fill and stroke separately. Uses the last set fill style, line width for the whole path.
Changes the current fill brush (Default = "black").
Draw filled text.
Changes font face (default = Helvetica)
Changes font size in points (default = 11pt) Warning: not millimeters.
Changes font style (default = FontStyle.normal)
Changes font weight (Default = FontWeight.normal)
Returns a copy of the current line dash pattern. The array returned will always have an even number of entries (i.e. the pattern is normalized).
Returns the phase offset (in the same units as the line dash pattern). Can be set, to change the phase offset. Values that are not finite values are ignored.
Add a subpath forming a line. Its exact width is set when the path is drawn with fill, stroke or fillAndStroke.
Change the width of a line. The whole path has the same line width.
Returns a TextMetrics struct that contains information about the measured text (such as its width, for example).
Start a new page, finish the previous one. This invalidates any transformation. The origin (0, 0) becomes again the top-left point of each page.
Number of units in a page. Return: Page height in millimeters.
Number of units in a page. Return: Page width in millimeters.
Pop state stack and restore state
Changes the transformation matrix to apply a rotation transformation with the given characteristics. The angle is in radians, the direction is clockwise.
Push state on state stack. What this states contains: - transformation matrices
Changes the transformation matrix to apply a scaling transformation with the given characteristics.
Sets the current line dash pattern (as used when stroking). The argument is an array of distances for which to alternately have the line on and the line off.
Strokes the subpaths of the current path or the given path with the current stroke style. Uses the last set fill style, line width for the whole path.
Changes the current stroke brush (Default = "black").
Changes text alignment (default = TextAlign.start)
Changes text baseline (default = TextBaseline.alphabetic)
Changes the transformation matrix to apply a translation transformation with the given characteristics.
Describes the printed 2D renderer.
This is the law, specific implementation MUST obey this interface and not the underlying implementation in PDF/SVG/whatever (and if necessary revise this spec).
We are heavily influenced by the HTML5 Canvas 2D context API, for its familiarity.