1.0.3 • Published 8 years ago
canvas-multiline-text v1.0.3
canvas-multiline-text
Draws a text in a rectangle on a canvas, on multiple lines.
It was conceived to be used on Node.js with Automattic's implementation of Canvas node-canvas, but it should work in browsers too.
Initialy developed for ISBOBackend.
Usage
This module exports a single function that draws a text on a canvas' 2d context, breaking it in multiple lines if necessary.
The function also returns the used font size for drawing text.
drawMultilineText(text, context, options)Example
const canvas = new Canvas(500, 300)
const drawMultilineText = require('canvas-multiline-text')
const fontSizeUsed = drawMultilineText(
canvas.getContext('2d'),
"Please could you stop the noise, I'm trying to get some rest from all the unborn chicken voices in my head. What's that? What's that?",
{
rect: {
x: 10,
y: 10,
width: canvas.width - 20,
height: canvas.height - 20
},
font: 'Merriweather',
verbose: true,
lineHeight: 1.4,
minFontSize: 15,
maxFontSize: 120
)
console.log('Text drawn with font size: ', fontSizeUsed)Options
The whole options parameter is optional.
font- Used font name or font family. Default issans-serif.minFontSize- Min font size for text. Default is30.maxFontSize- Max font size for text. Default is100.rect- Area for text. Default is{ x: 0, y: 0, width: ctx.canvas.width, height: ctx.canvas.height }.stroke- If true,strokeText()wil be used instead offillText(). Default isfalse.lineHeight- Multiplicator for line height. Default is1.1.verbose- If true, greenlock-express will log (see below) the server bootstrap.logFunction- Custom function for logging, with signaturelogFunction(message). Default isconsole.log.
Dependencies
This module require some kind of Canvas object, so in Node.js you'll need to have node-canvas installed, even if it's not in this module's dependencies list.