Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to calculate width and height of text in jspdf?

I'm facing some issues while creating tables in jspdf. I could not find any good related docs, but if anyone knows one, please share.

I found two related methods:

1) doc.getStringUnitWidth(text, {widths:12,kerning:2});

2) doc.getTextDimensions(text)

What does widths and kerning mean in the first method? What should I provide? Which method should I use to get the width and height of text?

My goal is to solve some issues related to overlapping cell content, wrapping of text and text overflow relative to the page width.

like image 888
NFE Avatar asked Oct 01 '13 06:10

NFE


1 Answers

You might want to look at the AutoTable plugin for generating tables with jsPDF. I found the built in plugin hard to work with and isn't documented at all.

The best way I have found to calculate the width is simply doing this:

var doc = new jsPDF(); var width = doc.getTextWidth('Text'); console.log(width); 

If you really need to calculate the height getDimensions() might be an option. However, it is not pixel perfect and looking at the source I doubt it will work for anything but pt. Here is an example:

var doc = new jsPDF('p', 'pt'); var dim = doc.getTextDimensions('Text'); console.log(dim); // Object {w: 24.149968818897642, h: 19.499975433070865} 
like image 164
Simon Bengtsson Avatar answered Sep 20 '22 14:09

Simon Bengtsson