canvas-multiline-text
DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/canvas-multiline-text package

1.0.3 • Public • Published

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.

Package Sidebar

Install

npm i canvas-multiline-text

Weekly Downloads

60

Version

1.0.3

License

ISC

Unpacked Size

5.3 kB

Total Files

4

Last publish

Collaborators

  • davideblasutto