Skip to content

Instantly share code, notes, and snippets.

@Purush0th
Last active November 23, 2020 18:47
Show Gist options
  • Star 11 You must be signed in to star a gist
  • Fork 7 You must be signed in to fork a gist
  • Save Purush0th/7fe8665bbb04482a0d80 to your computer and use it in GitHub Desktop.
Save Purush0th/7fe8665bbb04482a0d80 to your computer and use it in GitHub Desktop.
Text alignment for jsPDF 💥
(function (api, $) {
'use strict';
api.writeText = function (x, y, text, options) {
options = options || {};
var defaults = {
align: 'left',
width: this.internal.pageSize.width
}
var settings = $.extend({}, defaults, options);
// Get current font size
var fontSize = this.internal.getFontSize();
// Get the actual text's width
/* You multiply the unit width of your string by your font size and divide
* by the internal scale factor. The division is necessary
* for the case where you use units other than 'pt' in the constructor
* of jsPDF.
*/
var txtWidth = this.getStringUnitWidth(text) * fontSize / this.internal.scaleFactor;
if (settings.align === 'center')
x += (settings.width - txtWidth) / 2;
else if (settings.align === 'right')
x += (settings.width - txtWidth);
//default is 'left' alignment
this.text(text, x, y);
}
})(jsPDF.API, jQuery);
@Purush0th
Copy link
Author

Text alignment plugin - jsPDF

This small plugin will align the given text in jsPDF

Options:

{
width:100, // text container width (or) page width by default
align:'center' // right, center , left (default)
}

Usage:

var doc = new jsPDF('p', 'pt', 'a4');
//Alignment based on page width
doc.writeText(0, 40 ,'align - center ', { align: 'center' });
doc.writeText(0, 80 ,'align - right ', { align: 'right' });
doc.writeText(0, 120 ,'align - left '});

//Alignment based on text container width
doc.writeText(0, 120 ,'align - center : inside container',{align:'center',width:100});

@JPaulPunzalan
Copy link

Is the justified alignment possible using code?

@ahugo91z
Copy link

Great Job Man, thanks, work for me!! It's Awesome

@Rubench0
Copy link

@JPaulPunzalan Did you manage to justify the text with this library?

@alireza-a2f
Copy link

Hi guys, I'm new in this field, how can I use this library within my code?
There are a lot of files, do I have to include them all?

@iamsajidjaved
Copy link

kindly upload it to https://www.npmjs.com/ so that we can download it and use it in every technology with ease through npm.

@fershibli
Copy link

fershibli commented May 23, 2019

How do I include this in my React project?
I've tried to just copy and paste in the code, but got error 'jQuery' is not defined no-undef.

@gopimanikandan
Copy link

Thanks for the gist Purushoth. Great job. Works perfectly.

@Josloader3
Copy link

Thank you

@kedar9444
Copy link

can i get typescript version of the same ?

@borisBelloc
Copy link

borisBelloc commented Mar 23, 2020

any infos somewhere about how to use this pluggin with jspdf inside angular ?

@maggieeee87
Copy link

This is AWESOME! Thank you so much

@FastLogic1
Copy link

how I show Textfiled value in the center

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment