Skip to content

Commit 9d5455b

Browse files
author
Daniel Dotsenko
committed
adding splitTextToSize to Examples webpage.
1 parent f7ce8fc commit 9d5455b

2 files changed

Lines changed: 84 additions & 1 deletion

File tree

examples/basic.html

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@
88
<script type="text/javascript" src="js/jquery/jquery-1.7.1.min.js"></script>
99
<script type="text/javascript" src="js/jquery/jquery-ui-1.8.17.custom.min.js"></script>
1010
<script type="text/javascript" src="../jspdf.js"></script>
11-
<script type="text/javascript" src="../jspdf.plugin.addimage.js"></script>
11+
<script type="text/javascript" src="../jspdf.plugin.standard_fonts_metrics.js"></script>
12+
<script type="text/javascript" src="../jspdf.plugin.split_text_to_size.js"></script>
1213

1314
<script type="text/javascript" src="js/basic.js"></script>
1415

@@ -168,6 +169,43 @@ <h2><a href="#">Different text colors</a></h2>
168169
// Output as Data URI
169170
doc.output('datauri');</pre>
170171
<a href="javascript:demoTextColors()" class="button">Run Code</a></p></div>
172+
173+
<h2><a href="#">Font-metrics-based line sizing and split</a></h2>
174+
<div><p><pre>var pdf = new jsPDF('p','in','letter')
175+
, sizes = [12, 16, 20]
176+
, fonts = [['Times','Roman'],['Helvetica',''], ['Times','Italic']]
177+
, font, size, lines
178+
, verticalOffset = 0.5 // inches on a 8.5 x 11 inch sheet.
179+
, loremipsum = 'Lorem ipsum dolor sit amet, ...'
180+
181+
for (var i in fonts){
182+
if (fonts.hasOwnProperty(i)) {
183+
font = fonts[i]
184+
size = sizes[i]
185+
186+
lines = pdf.setFont(font[0], font[1])
187+
.setFontSize(size)
188+
.splitTextToSize(loremipsum, 7.5)
189+
// Don't want to preset font, size to calculate the lines?
190+
// .splitTextToSize(text, maxsize, options)
191+
// allows you to pass an object with any of the following:
192+
// {
193+
// 'fontSize': 12
194+
// , 'fontStyle': 'Italic'
195+
// , 'fontName': 'Times'
196+
// }
197+
// Without these, .splitTextToSize will use current / default
198+
// font Family, Style, Size.
199+
200+
pdf.text(0.5, verticalOffset + size / 72, lines)
201+
202+
verticalOffset += (lines.length + 0.5) * size / 72
203+
}
204+
}
205+
206+
pdf.output('dataurl')</pre>
207+
<a href="javascript:demoStringSplitting()" class="button">Run Code</a></p></div>
208+
171209
</div>
172210
</div>
173211

examples/js/basic.js

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,3 +261,48 @@ function demoImages() {
261261

262262
getImageFromUrl('thinking-monkey.jpg', createPDF);
263263
}
264+
265+
function demoStringSplitting() {
266+
267+
var pdf = new jsPDF('p','in','letter')
268+
, sizes = [12, 16, 20]
269+
, fonts = [['Times','Roman'],['Helvetica',''], ['Times','Italic']]
270+
, font, size, lines
271+
, margin = 0.5 // inches on a 8.5 x 11 inch sheet.
272+
, verticalOffset = margin
273+
, loremipsum = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus id eros turpis. Vivamus tempor urna vitae sapien mollis molestie. Vestibulum in lectus non enim bibendum laoreet at at libero. Etiam malesuada erat sed sem blandit in varius orci porttitor. Sed at sapien urna. Fusce augue ipsum, molestie et adipiscing at, varius quis enim. Morbi sed magna est, vel vestibulum urna. Sed tempor ipsum vel mi pretium at elementum urna tempor. Nulla faucibus consectetur felis, elementum venenatis mi mollis gravida. Aliquam mi ante, accumsan eu tempus vitae, viverra quis justo.\n\nProin feugiat augue in augue rhoncus eu cursus tellus laoreet. Pellentesque eu sapien at diam porttitor venenatis nec vitae velit. Donec ultrices volutpat lectus eget vehicula. Nam eu erat mi, in pulvinar eros. Mauris viverra porta orci, et vehicula lectus sagittis id. Nullam at magna vitae nunc fringilla posuere. Duis volutpat malesuada ornare. Nulla in eros metus. Vivamus a posuere libero.'
274+
275+
// Margins:
276+
pdf.setDrawColor(0, 255, 0)
277+
.setLineWidth(1/72)
278+
.line(margin, margin, margin, 11 - margin)
279+
.line(8.5 - margin, margin, 8.5-margin, 11-margin)
280+
281+
// the 3 blocks of text
282+
for (var i in fonts){
283+
if (fonts.hasOwnProperty(i)) {
284+
font = fonts[i]
285+
size = sizes[i]
286+
287+
lines = pdf.setFont(font[0], font[1])
288+
.setFontSize(size)
289+
.splitTextToSize(loremipsum, 7.5)
290+
// Don't want to preset font, size to calculate the lines?
291+
// .splitTextToSize(text, maxsize, options)
292+
// allows you to pass an object with any of the following:
293+
// {
294+
// 'fontSize': 12
295+
// , 'fontStyle': 'Italic'
296+
// , 'fontName': 'Times'
297+
// }
298+
// Without these, .splitTextToSize will use current / default
299+
// font Family, Style, Size.
300+
301+
pdf.text(0.5, verticalOffset + size / 72, lines)
302+
303+
verticalOffset += (lines.length + 0.5) * size / 72
304+
}
305+
}
306+
307+
pdf.output('dataurl')
308+
}

0 commit comments

Comments
 (0)