46 lines
1.9 KiB
JavaScript
Executable File
46 lines
1.9 KiB
JavaScript
Executable File
/*
|
|
* 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);
|