pdfkit-table
Advanced tools
Comparing version 0.1.57 to 0.1.58
84
index.js
@@ -77,2 +77,3 @@ // jshint esversion: 6 | ||
const rowDistance = 0.5; | ||
let cellPadding = {top: 0, right: 0, bottom: 0, left: 0}; // universal | ||
@@ -171,2 +172,39 @@ const prepareHeader = options.prepareHeader || (() => this.font("Helvetica-Bold").fontSize(8)); | ||
// padding: [10, 10, 10, 10] | ||
// padding: [10, 10] | ||
// padding: {top: 10, right: 10, bottom: 10, left: 10} | ||
// padding: 10, | ||
const prepareCellPadding = (p) => { | ||
// array | ||
if(Array.isArray(p)){ | ||
switch(p.length){ | ||
case 3: p = [...p, 0]; break; | ||
case 2: p = [...p, ...p]; break; | ||
case 1: p = Array(4).fill(p[0]); break; | ||
} | ||
} | ||
// number | ||
else if(typeof p === 'number'){ | ||
p = Array(4).fill(p); | ||
} | ||
// object | ||
else if(typeof p === 'object'){ | ||
const {top, right, bottom, left} = p; | ||
p = [top, right, bottom, left]; | ||
} | ||
// null | ||
else { | ||
p = Array(4).fill(0); | ||
} | ||
return { | ||
top: p[0] >> 0, // int | ||
right: p[1] >> 0, | ||
bottom: p[2] >> 0, | ||
left: p[3] >> 0, | ||
}; | ||
}; | ||
const prepareRowOptions = (row) => { | ||
@@ -216,2 +254,3 @@ | ||
let result = 0; | ||
let cellp; | ||
@@ -240,8 +279,10 @@ // if row is object, content with property and options | ||
text = String(text).replace('bold:',''); | ||
text = String(text).replace('bold:','').replace('size',''); | ||
// calc | ||
// cell padding | ||
cellp = prepareCellPadding(table.headers[i].padding || 0); | ||
// calc height size of string | ||
const cellHeight = this.heightOfString(text, { | ||
width: columnSizes[i], | ||
width: columnSizes[i] - (cellp.left + cellp.right), | ||
align: 'left', | ||
@@ -309,3 +350,3 @@ }); | ||
} | ||
}; | ||
@@ -371,3 +412,3 @@ calcColumnSizes(); | ||
let {label, width, renderer, align, headerColor, headerOpacity} = dataHeader; | ||
let {label, width, renderer, align, headerColor, headerOpacity, padding} = dataHeader; | ||
// check defination | ||
@@ -379,2 +420,3 @@ width = width || columnSizes[i]; | ||
// register renderer function | ||
if(renderer && typeof renderer === 'string') { | ||
@@ -395,5 +437,8 @@ table.headers[i].renderer = fEval(renderer); | ||
// cell padding | ||
cellPadding = prepareCellPadding(padding); | ||
// write | ||
this.text(label, lastPositionX, startY, { | ||
width: width, | ||
this.text(label, lastPositionX + (cellPadding.left), startY, { | ||
width: width - (cellPadding.left + cellPadding.right), | ||
align: align, | ||
@@ -419,3 +464,3 @@ }) | ||
} | ||
}; | ||
@@ -454,3 +499,3 @@ // End header | ||
let {property, width, renderer, align} = dataHeader; | ||
let {property, width, renderer, align, padding} = dataHeader; | ||
@@ -461,6 +506,9 @@ // check defination | ||
// cell padding | ||
cellPadding = prepareCellPadding(padding); | ||
const rectCell = { | ||
x: lastPositionX, | ||
x: lastPositionX + (cellPadding.left), | ||
y: startY - columnSpacing - (rowDistance * 2), | ||
width: width, | ||
width: width - (cellPadding.left + cellPadding.right), | ||
height: rowHeight + columnSpacing, | ||
@@ -516,4 +564,4 @@ } | ||
this.text(text, lastPositionX, startY, { | ||
width: width, | ||
this.text(text, lastPositionX + (cellPadding.left), startY, { | ||
width: width - (cellPadding.left + cellPadding.right), | ||
align: align, | ||
@@ -588,10 +636,14 @@ }); | ||
// renderer column | ||
if(typeof table.headers[index] === 'object') { | ||
// renderer column | ||
table.headers[index].renderer && (cell = table.headers[index].renderer(cell, index, i, row, rectRow, rectCell)); // text-cell, index-column, index-line, row | ||
// align | ||
table.headers[index].align && (align = table.headers[index].align); | ||
} | ||
this.text(cell, lastPositionX, startY, { | ||
width: columnSizes[index], | ||
// cell padding | ||
cellPadding = prepareCellPadding(table.headers[index].padding || 0); | ||
this.text(cell, lastPositionX + (cellPadding.left), startY, { | ||
width: columnSizes[index] - (cellPadding.left + cellPadding.right), | ||
align: align, | ||
@@ -598,0 +650,0 @@ }); |
{ | ||
"name": "pdfkit-table", | ||
"version": "0.1.57", | ||
"version": "0.1.58", | ||
"description": "PdfKit Table. Helps to draw informations in simple tables using pdfkit. #server-side. Generate pdf tables with javascript (PDFKIT plugin) ", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -380,2 +380,3 @@ # pdfkit-table | ||
- margin: marginBottom before, marginTop after | ||
- cell padding | ||
@@ -382,0 +383,0 @@ ## Changelogs |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
35412
512
535