Skip to content

Commit bd2377c

Browse files
committed
Possible to add triangles
1 parent 79ab409 commit bd2377c

3 files changed

Lines changed: 52 additions & 18 deletions

File tree

examples/basic.html

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,21 @@ <h2><a href="#">Draw example: circles and ellipses</a></h2>
224224
// Output as Data URI
225225
doc.output('datauri');</pre>
226226
<a href="javascript:demoCircles()" class="button">Run Code</a></p></div>
227+
228+
<h2><a href="#">Draw example: triangles</a></h2>
229+
<div><p><pre>var doc = new jsPDF();
230+
231+
doc.triangle(60, 100, 60, 120, 80, 110, 'FD');
232+
233+
doc.setLineWidth(1);
234+
doc.setDrawColor(255,0,0);
235+
doc.setFillColor(0,0,255);
236+
doc.triangle(100, 100, 110, 100, 120, 130, 'FD');
237+
238+
// Output as Data URI
239+
doc.output('datauri');</pre>
240+
<a href="javascript:demoTriangles()" class="button">Run Code</a></p></div>
241+
227242
</div>
228243

229244
<script type="text/javascript">

examples/js/basic.js

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ function demoLines() {
149149
var doc = new jsPDF();
150150

151151
doc.line(20, 20, 60, 20); // horizontal line
152-
152+
153153
doc.setLineWidth(0.5);
154154
doc.line(20, 25, 60, 25);
155155

@@ -190,6 +190,20 @@ function demoCircles() {
190190
doc.setFillColor(255,0,0);
191191
doc.circle(120, 20, 5, 'FD');
192192

193+
// Output as Data URI
194+
doc.output('datauri');
195+
}
196+
197+
function demoTriangles() {
198+
var doc = new jsPDF();
199+
200+
doc.triangle(60, 100, 60, 120, 80, 110, 'FD');
201+
202+
doc.setLineWidth(1);
203+
doc.setDrawColor(255,0,0);
204+
doc.setFillColor(0,0,255);
205+
doc.triangle(100, 100, 110, 100, 120, 130, 'FD');
206+
193207
// Output as Data URI
194208
doc.output('datauri');
195209
}

jspdf.js

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ var jsPDF = function(orientation, unit, format){
3838
if (typeof format === 'undefined') format = 'a4';
3939

4040
// Private properties
41-
var version = '20120127';
41+
var version = '20120130';
4242
var buffer = '';
4343

4444
var pdfVersion = '1.3'; // PDF Version
@@ -352,6 +352,16 @@ var jsPDF = function(orientation, unit, format){
352352
return 'F1'; // shouldn't happen
353353
}
354354

355+
var getStyle = function(style) {
356+
var op = 'S';
357+
if (style === 'F') {
358+
op = 'f';
359+
} else if (style === 'FD' || style === 'DF') {
360+
op = 'B';
361+
}
362+
return op;
363+
}
364+
355365
// Add the first page automatically
356366
addFonts();
357367
_addPage();
@@ -373,32 +383,27 @@ var jsPDF = function(orientation, unit, format){
373383
pageFontSize = fontSize;
374384
}
375385

376-
var str = sprintf('BT ' + textColor + ' %.2f %.2f Td (%s) Tj ET', x * k, (pageHeight - y) * k, pdfEscape(text));
377-
out(str);
386+
out(sprintf('BT ' + textColor + ' %.2f %.2f Td (%s) Tj ET', x * k, (pageHeight - y) * k, pdfEscape(text)));
378387
return _jsPDF;
379388
},
380389
line: function(x1, y1, x2, y2) {
381-
var str = sprintf('%.2f %.2f m %.2f %.2f l S',x1 * k, (pageHeight - y1) * k, x2 * k, (pageHeight - y2) * k);
382-
out(str);
390+
out(sprintf('%.2f %.2f m %.2f %.2f l S',x1 * k, (pageHeight - y1) * k, x2 * k, (pageHeight - y2) * k));
383391
return _jsPDF;
384392
},
385393
rect: function(x, y, w, h, style) {
386-
var op = 'S';
387-
if (style === 'F') {
388-
op = 'f';
389-
} else if (style === 'FD' || style === 'DF') {
390-
op = 'B';
391-
}
394+
var op = getStyle(style);
392395
out(sprintf('%.2f %.2f %.2f %.2f re %s', x * k, (pageHeight - y) * k, w * k, -h * k, op));
393396
return _jsPDF;
394397
},
398+
triangle: function(x1, y1, x2, y2, x3, y3, style) {
399+
var op = getStyle(style);
400+
out(sprintf('%.2f %.2f m %.2f %.2f l', x1 * k, (pageHeight - y1) * k, x2 * k, (pageHeight - y2) * k));
401+
out(sprintf('%.2f %.2f l', x3 * k, (pageHeight - y3) * k));
402+
out(sprintf('%.2f %.2f l %s', x1 * k, (pageHeight - y1) * k, op));
403+
return _jsPDF;
404+
},
395405
ellipse: function(x, y, rx, ry, style) {
396-
var op = 'S';
397-
if (style === 'F') {
398-
op = 'f';
399-
} else if (style === 'FD' || style === 'DF') {
400-
op = 'B';
401-
}
406+
var op = getStyle(style);
402407
var lx = 4/3*(Math.SQRT2-1)*rx;
403408
var ly = 4/3*(Math.SQRT2-1)*ry;
404409
out(sprintf('%.2f %.2f m %.2f %.2f %.2f %.2f %.2f %.2f c',

0 commit comments

Comments
 (0)