Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
How to add line height to multiline text in Text using FabricJS?
In this tutorial, we are going to learn about how to add line height to multiline text in Text object using FabricJS. We can display text on canvas by adding an instance of fabric.Text. Not only does it allow us to move, scale and change the dimensions of the text but it also provides additional functionality like text alignment, text decoration, line height which can be obtained by the properties textAlign, underline and lineHeight respectively. We can add extra height between lines by using the lineHeight property.
Syntax
new fabric.Text(text: String, { lineHeight: Number }: 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 text. Using this parameter colour, cursor, border width and a lot of other properties can be changed related to the object of which lineHeight is a property.
Options Keys
lineHeight ? This property accepts a Number that allows us to control the height between each line. Default value of lineHeight property is 1.16.
Example 1: Default appearance of a text object
Let's see a code example to see how our text object looks like with the default value of lineHeight property. We will not pass any lineHeight key to the class in this example as given below:
<!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>Default appearance of a text object</h2>
<p>You can see the default line height in this example</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 a text object
var text = new fabric.Text("Add sample <br> text here", {
left: 50,
top: 70,
});
// Add it to the canvas
canvas.add(text);
</script>
</body>
</html>
Example 2: Passing the lineHeight property as key
In this example, we will see how assigning a value to the lineHeight property changes the space between each line in a text object. Here we have used 2 as lineHeight which thus increases the height between each line.
<!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 lineHeight property as key</h2>
<p>You can see our text object now has a line height of 2</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 a text object
var text = new fabric.Text("Add sample <br> text here", {
left: 50,
top: 70,
lineHeight: 2,
});
// Add it to the canvas
canvas.add(text);
</script>
</body>
</html>
Key Points
The default lineHeight value is 1.16, which provides standard spacing between lines
Values greater than 1.16 increase the space between lines, while values less than 1.16 decrease it
The lineHeight property only affects multiline text with line breaks (
) in the stringThis property is useful for improving text readability in multiline text blocks
Conclusion
The lineHeight property in FabricJS provides precise control over line spacing in multiline text objects. By adjusting this value, you can improve text readability and achieve the desired visual appearance for your canvas text elements.
