1.0.3 • Published 7 years ago

canvas-multiline-text v1.0.3

Weekly downloads
93
License
ISC
Repository
gitlab
Last release
7 years ago

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 is sans-serif.
  • minFontSize - Min font size for text. Default is 30.
  • maxFontSize - Max font size for text. Default is 100.
  • 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 of fillText(). Default is false.
  • lineHeight - Multiplicator for line height. Default is 1.1.
  • verbose - If true, greenlock-express will log (see below) the server bootstrap.
  • logFunction - Custom function for logging, with signature logFunction(message). Default is console.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.

1.0.3

7 years ago

1.0.2

7 years ago

1.0.1

8 years ago

1.0.0

8 years ago