forked from parallax/jsPDF
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstring-splitting.js
More file actions
45 lines (42 loc) · 1.89 KB
/
Copy pathstring-splitting.js
File metadata and controls
45 lines (42 loc) · 1.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/*
* Let's demonstrate string splitting with the first page of Shakespeare's Romeo and Juliet!
* We'll use a 8.5 x 11 inch sheet, measuring everything in inches.
*/
var pageWidth = 8.5,
lineHeight = 1.2,
margin = 0.5,
maxLineWidth = pageWidth - margin * 2,
fontSize = 24,
ptsPerInch = 72,
oneLineHeight = fontSize * lineHeight / ptsPerInch,
text = 'Two households, both alike in dignity,\n' +
'In fair Verona, where we lay our scene,\n' +
'From ancient grudge break to new mutiny,\n' +
'Where civil blood makes civil hands unclean.\n' +
'From forth the fatal loins of these two foes\n' +
'A pair of star-cross\'d lovers take their life;\n' +
'Whole misadventured piteous overthrows\n' +
'Do with their death bury their parents\' strife.\n' +
'The fearful passage of their death-mark\'d love,\n' +
'And the continuance of their parents\' rage,\n' +
// Notice that the following will be wrapped to two lines automatically!
'Which, but their children\'s end, nought could remove, Is now the two hours\' traffic of our stage;\n' +
'The which if you with patient ears attend,\n' +
'What here shall miss, our toil shall strive to mend.',
doc = new jsPDF({
unit: 'in',
lineHeight: lineHeight
}).setProperties({ title: 'String Splitting' });
// splitTextToSize takes your string and turns it in to an array of strings,
// each of which can be displayed within the specified maxLineWidth.
var textLines = doc
.setFont('helvetica', 'neue')
.setFontSize(fontSize)
.splitTextToSize(text, maxLineWidth);
// doc.text can now add those lines easily; otherwise, it would have run text off the screen!
doc.text(textLines, margin, margin + 2 * oneLineHeight);
// You can also calculate the height of the text very simply:
var textHeight = textLines.length * fontSize * lineHeight / ptsPerInch;
doc
.setFontStyle('bold')
.text('Text Height: ' + textHeight + ' inches', margin, margin + oneLineHeight);