How to change the font style of IText using FabricJS?



In this tutorial, we are going to learn about how to change the font style in IText object using FabricJS. The IText class was introduced in FabricJS version 1.4, extends fabric.Text and is used to create IText instances. An IText instance gives us the freedom to select, cut, paste or add new text without additional configurations. There are also various supported key combinations and mouse/touch combinations which make text interactive which are not provided in Text.

Textbox, however, which is based on IText allows us to resize the text rectangle and wraps lines automatically. This is not true for IText as height is not adjusted based on the wrapping of lines. We can manipulate our IText object by using various properties. Likewise, we can change the font style by using the fontStyle property.

Syntax

new fabric.IText(text: String, { fontStyle: String }: Object)

Parameters

  • text − This parameter accepts a String which is the text string that we want to display.

  • options (optional) − This parameter is an Object which provides additional customizations to our IText object. Using this parameter colour, cursor, border width and a lot of other properties can be changed related to the object of which fontStyle is a property.

Options Keys

  • fontStyle − This property accepts a String that allows us to control the font style of text. The possible values are “normal”, “italic” and “oblique” which are explained below −

    • normal − The text displays the normal font style. This is also the default.

    • italic − The text is displayed as cursive and slants to the right.

    • oblique − The text is displayed as the sloped version of the normal typeface. It usually looks similar to italic but an italic is a special version of the font, whereas an oblique version is just the regular version inclined a bit.

Example 1

Passing the fontStyle property as key with the value as “oblique”

Let’s see a code example to see how our IText object looks like when fontStyle property is used as key with the value as “oblique”.

<!DOCTYPE html> <html> <head> <!-- Adding the Fabric JS Library--> <script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/510/fabric.min.js"></script> </head> <body> <h2>Passing the fontStyle property as key with the value as “oblique”</h2> <p>You can see that the text is oblique</p> <canvas id="canvas"></canvas> <script> // Initiate a canvas instance var canvas = new fabric.Canvas("canvas"); canvas.setWidth(document.body.scrollWidth); canvas.setHeight(250); // Initiate an itext object var itext = new fabric.IText( "Add sample text here.
Lorem ipsum dolor sit amet"
,{ width: 300, left: 60, top: 70, fill: "#c70039", fontStyle: "oblique", } ); // Add it to the canvas canvas.add(itext); </script> </body> </html>

Example 2

Passing the fontStyle property as key with the value as “italic”

In this example, we are passing the fontStyle property as key, with a value as “italic”. This means that our IText object will be rendered with text that is slanted to the right.

<!DOCTYPE html> <html> <head> <!-- Adding the Fabric JS Library--> <script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/510/fabric.min.js"></script> </head> <body> <h2>Passing the fontStyle property as key with the value as “italic”</h2> <p>You can see that the text is italic</p> <canvas id="canvas"></canvas> <script> // Initiate a canvas instance var canvas = new fabric.Canvas("canvas"); canvas.setWidth(document.body.scrollWidth); canvas.setHeight(250); // Initiate an itext object var itext = new fabric.IText( "Add sample text here.
Lorem ipsum dolor sit amet"
,{ width: 300, left: 60, top: 70, fill: "#c70039", fontStyle: "italic", } ); // Add it to the canvas canvas.add(itext); </script> </body> </html>

Advertisements