-
Notifications
You must be signed in to change notification settings - Fork 141
/
pdf.js
35 lines (34 loc) · 1.17 KB
/
pdf.js
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
var saveAs = require('file-saver').saveAs;
var utils = require('./utils');
var jsPDF = require('./jspdf');
module.exports = function (table, filename) {
var pdf = new jsPDF('p','pt', 'a4', false);
var startColPosition = 20;
var startRowPosition = 20;
var colPosition = 0;
var rowPosition = 0;
var page = 1;
var save = function (pdf) {
saveAs(pdf.output('blob'), filename + '.pdf');
};
pdf.setFontSize(14);
if (/[\u4E00-\u9FA5]|[\uFE30-\uFFA0]/gi.test(utils.getText(table))) {
pdf.addDOM(table, startRowPosition, startColPosition, function () {
save(pdf);
});
} else {
for (var i = 0, row; row = table.rows[i]; i++) {
if ((i + 1) % 26 === 0){
pdf.addPage();
page++;
startRowPosition = startRowPosition + 10;
}
rowPosition = startRowPosition + ((i + 1) * 10) - ((page -1) * 280);
for (var j = 0, col; col = row.cells[j]; j++) {
colPosition = startColPosition + (j * 50);
pdf.text(utils.getText(col), colPosition, rowPosition);
}
}
save(pdf);
}
}