@@ -8,14 +8,24 @@ function html2pdf(source, target, optPDF, margin, dpi) {
88 if ( ! source ) return ;
99 target = target || 'file.pdf' ;
1010 optPDF = optPDF || { } ;
11- if ( typeof margin !== 'number' ) margin = 1 ;
12- dpi = dpi || 144 ;
11+ margin = margin || 1 ;
12+ dpi = dpi || 96 * 2 ;
13+
14+ if ( margin . constructor !== Array ) {
15+ margin = [ margin , margin , margin , margin ] ;
16+ } else if ( margin . length === 2 ) {
17+ // Top, Left, Bottom, Right
18+ margin = [ margin [ 0 ] , margin [ 1 ] , margin [ 0 ] , margin [ 1 ] ] ;
19+ }
1320
1421 // Get info (page width, height, and units) that will be used by jsPDF
1522 var info = jsPDF_getSize ( optPDF ) ;
1623
1724 // Calculate the div size (without margin) and aspect ratio
18- var optCanvas = { width : info . width - margin * 2 , height : info . height - margin * 2 } ;
25+ var optCanvas = {
26+ width : info . width - margin [ 1 ] - margin [ 3 ] ,
27+ height : info . height - margin [ 0 ] - margin [ 2 ]
28+ } ;
1929 optCanvas . ratio = optCanvas . height / optCanvas . width ;
2030
2131 // Make the template div that will be used as a model for the canvas
@@ -113,7 +123,7 @@ function html2pdf_makePDF(canvas, target, optCanvas, optPDF, margin) {
113123 // Add the page to the PDF
114124 if ( page ) pdf . addPage ( ) ;
115125 var imgData = canvas . toDataURL ( 'image/jpeg' , 0.95 ) ;
116- pdf . addImage ( imgData , 'JPEG' , margin , margin , optCanvas . width , optCanvas . height ) ;
126+ pdf . addImage ( imgData , 'JPEG' , margin [ 1 ] , margin [ 0 ] , optCanvas . width , optCanvas . height ) ;
117127
118128 // ALTERNATIVE: Using PNG instead of JPG
119129 // var imgData = canvas.toDataURL('image/png');
0 commit comments