v0.6.5
CanvasTextWrapper(HTMLCanvasElement, String [, options]);
options
- is an object with the following available properties and values:
font:
(String) - text style that includes font size (in px), font weight, font family, etc. Similar to CSS font shorthand propertylineHeight:
(String or Number) - Number means 'n' times font size where 1 is equivalent to '100%'. Also the property can be set in "%" or "px" using StringtextAlign: "left" | "center" | "right"
- horizontal alignment of each lineverticalAlign: "top" | "middle" | "bottom"
- vertical alignment for the whole text blockpaddingX:
(Number) - horizontal padding (in px) set equally on both, left and right sidespaddingY:
(Number) - vertical padding (in px) set equally on both, top and bottom sidesfitParent:
(Boolean) - if enabled, text will fit canvas container's width/height instead of canvas own width/heightlineBreak: "auto" | "word"
- text split rule. When using"auto"
, text goes to a next line on a whole word when there's no more room. If"word"
is set as value, each next word will be placed on a new line.sizeToFill:
(Boolean) - ignore given font size and line height and resize text to fill its padded containerstrokeText:
(Boolean) - outline text based on context configurationjustifyLines:
(Boolean) - if enabled, all lines match the same width with flexed spaces between words (one-word lines are ignored).allowNewLine:
(Boolean) if enabled, the text breaks on every new line character "\n" otherwise it'll be considered as a spacerenderHDPI:
(Boolean) if enabled, text is rendered based on device pixel ratio for high-DPI screens
NOTE: if a single word is too long to fit the width with specified font size, it will break on any letter unless sizeToFill
option is enabled.
{
font: "18px Arial, sans-serif",
lineHeight: 1,
textAlign: "left",
verticalAlign: "top",
paddingX: 0,
paddingY: 0,
fitParent: false,
lineBreak: "auto",
strokeText: false
sizeToFill: false,
allowNewLine: true,
justifyLines: false,
renderHDPI: true
}
Configure context settings properties such as "fillStyle", "lineWidth" or "strokeStyle" before using CanvasTextWrapper like so:
var CanvasTextWrapper = require('canvas-text-wrapper').CanvasTextWrapper;
var canvas = document.getElementById("#canvasText");
canvas.width = 200;
canvas.height = 200;
context = canvas.getContext("2d");
context.lineWidth = 2;
context.strokeStyle = "#ff0000";
CanvasTextWrapper(canvas, "Hello"); // default options will apply
In terminal go to canvas-text-wrapper
folder do npm i
and run npm t
.
NOTE: Test requires beefy
to be installed globally beefy
bower install canvas-text-wrapper
npm i canvas-text-wrapper --save