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 set the alignment of text in a Textbox using FabricJS?
In this tutorial, we are going to learn how to set the alignment of text in a Textbox using FabricJS. We can customize, stretch or move around the text written in a textbox. In order to create a textbox, we will have to create an instance of fabric.Textbox class and add it to the canvas. Similarly, we can also set its text alignment by using the textAlign property.
Syntax
new fabric.Textbox(text: String, { textAlign : String }: Object)
Parameters
text ? This parameter accepts a String which is the text string that we want to display inside our textbox.
options (optional) ? This parameter is an Object which provides additional customizations to our textbox. Using this parameter, properties such as colour, cursor, border width and a lot of other properties can be changed related to the object of which textAlign is a property.
textAlign Property Values
-
textAlign ? This property accepts a String as a value which allows us to control the text alignment. Its default value is "left". The possible values are:
left ? Aligns the text to the left (default)
center ? Aligns the text at the center
right ? Aligns the text to the right
justify ? Stretches the lines such that each line has same distance from both left and right edges of the textbox
justify-left ? Stretches the lines such that each line has same distance from the left-edge of the textbox
justify-center ? Centers each line leaving different distance from both right and left edges of the textbox
justify-right ? Stretches the lines such that each line has same distance from the right-edge of the textbox
Example 1: Default Text Alignment
Let's see a code example to see how our textbox object looks like when the textAlign property is not used. In this case, our text will be aligned towards the left.
<!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 the text in Textbox object</h2>
<p>You can see that the text alignment is towards left</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 textbox object
var textbox = new fabric.Textbox("If you're too open-minded; your brains will fall out.", {
width: 400,
left: 50,
top: 30,
fill: "orange",
strokeWidth: 2,
stroke: "green"
});
// Add it to the canvas
canvas.add(textbox);
</script>
</body>
</html>
Example 2: Using textAlign Property
In this example, we will see how assigning a value to the textAlign property changes the alignment of the text inside the textbox object in our canvas. Since we have passed the value as "right", the text will now be aligned towards 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 textAlign property as key with a value</h2>
<p>You can see that the text alignment is towards right</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 textbox object
var textbox = new fabric.Textbox("If you're too open-minded; your brains will fall out.", {
width: 400,
left: 50,
top: 70,
fill: "orange",
strokeWidth: 2,
stroke: "green",
textAlign: "right"
});
// Add it to the canvas
canvas.add(textbox);
</script>
</body>
</html>
Example 3: Center and Justify Alignment
Here's an example demonstrating center and justify alignment options:
<!DOCTYPE html>
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/510/fabric.min.js"></script>
</head>
<body>
<canvas id="canvas"></canvas>
<script>
var canvas = new fabric.Canvas("canvas");
canvas.setWidth(600);
canvas.setHeight(400);
// Center aligned textbox
var centerTextbox = new fabric.Textbox("This text is center aligned in the textbox.", {
width: 300,
left: 50,
top: 50,
fill: "blue",
textAlign: "center"
});
// Justify aligned textbox
var justifyTextbox = new fabric.Textbox("This text is justified, meaning it stretches to fill the width of the textbox evenly.", {
width: 300,
left: 50,
top: 200,
fill: "purple",
textAlign: "justify"
});
canvas.add(centerTextbox);
canvas.add(justifyTextbox);
</script>
</body>
</html>
Conclusion
The textAlign property in FabricJS provides flexible text alignment options for Textbox objects. Use "left", "center", "right", or "justify" values to control how text appears within your textbox, enhancing the visual presentation of your canvas elements.
