Socket
Socket
Sign inDemoInstall

voilab-pdf-table

Package Overview
Dependencies
1
Maintainers
2
Versions
13
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.2.0 to 0.3.0

2

package.json
{
"name": "voilab-pdf-table",
"version": "0.2.0",
"version": "0.3.0",
"description": "PdfKit wrapper that helps to draw informations in simple tables.",

@@ -5,0 +5,0 @@ "main": "voilab-table.js",

@@ -21,2 +21,3 @@ Voilab Pdf Table

create: function () {
// create a PDF from PDFKit, and a table from PDFTable
var pdf = new PdfDocument({

@@ -30,5 +31,7 @@ autoFirstPage: false

table
// add some plugins (here, a 'fit-to-width' for a column)
.addPlugin(new (require('voilab-pdf-table/plugins/fitcolumn'))({
column: 'description'
}))
// set defaults to your columns
.setColumnsDefaults({

@@ -38,2 +41,3 @@ headerBorder: 'B',

})
// add table columns
.addColumns([

@@ -64,2 +68,3 @@ {

])
// add events (here, we draw headers on each new page)
.onPageAdded(function (tb) {

@@ -69,4 +74,6 @@ tb.addHeader();

// if no page already exists in your PDF, do not forget to add one
pdf.addPage();
// draw content, by passing data to the addBody method
table.addBody([

@@ -97,5 +104,7 @@ {description: 'Product 1', quantity: 1, price: 20.10, total: 20.10},

```js
table.setNewPageFn(function (table, row) {
table.onPageAdd(function (table, row, ev) {
// do something like
table.pdf.addPage();
// cancel event so the automatic page add is not triggered
ev.cancel = true;
});

@@ -106,2 +115,7 @@ ```

### 0.3.0
+ new pages are better handeled. No more need to call `setNewPageFn`
+ removed `setNewPageFn`. Check documentation for how you can customize page
add. Deprecated mention will be definitively removed in next release
### 0.2.0

@@ -108,0 +122,0 @@ + added event `onColumnPropertyChanged`

@@ -48,7 +48,8 @@ /*jslint node: true, unparam: true, nomen: true */

addCellBorder = function (self, column, row, pos, border, isHeader) {
var bpos = {
x: pos.x + column.width,
y: pos.y + row._renderedContent.height
};
addCellBorder = function (self, column, row, pos, isHeader) {
var border = isHeader ? column.headerBorder : column.border,
bpos = {
x: pos.x + column.width,
y: pos.y + row._renderedContent.height
};

@@ -105,16 +106,19 @@ if (border.indexOf('L') !== -1) {

addRow = function (self, row, isHeader) {
var pos = {
x: self.pdf.page.margins.left,
y: self.pdf.y
},
ev = {
cancel: false
};
// the content might be higher than the remaining height on the page.
if (self.pdf.y + row._renderedContent.height > self.pdf.page.height - self.pdf.page.margins.bottom - self.bottomMargin) {
self.emitter.emit('page-add', self);
if (self.newPageFn) {
self.newPageFn(self, row);
self.emitter.emit('page-added', self);
self.emitter.emit('page-add', self, row, ev);
if (!ev.cancel) {
self.pdf.addPage();
}
self.emitter.emit('page-added', self, row);
}
var pos = {
x: self.pdf.page.margins.left,
y: self.pdf.y
};
lodash.forEach(self.getColumns(), function (column) {

@@ -125,3 +129,3 @@ if ((!isHeader && column.fill) || (isHeader && column.headerFill)) {

if ((!isHeader && column.border) || (isHeader && column.headerBorder)) {
addCellBorder(self, column, row, pos, (isHeader ? column.headerBorder : column.border), isHeader);
addCellBorder(self, column, row, pos, isHeader);
}

@@ -298,5 +302,9 @@ addCell(self, column, row, pos, isHeader);

/**
* Add action before a page is added
* Add action before a page is added. You can use <em>ev.cancel = true</em>
* to cancel automatic page add, so you can do whatever you want to add
* a new page.
* <ul>
* <li><i>PdfTable</i> <b>table</b> PdfTable behind the event</li>
* <li><i>Object</i> <b>row</b> the current row</li>
* <li><i>Object</i> <b>ev</b> the event</li>
* </ul>

@@ -314,2 +322,3 @@ * @return {PdfTable}

* <li><i>PdfTable</i> <b>table</b> PdfTable behind the event</li>
* <li><i>Object</i> <b>row</b> the current row</li>
* </ul>

@@ -376,17 +385,2 @@ * @return {PdfTable}

/**
* Add action after a column's witch is changed
* <ul>
* <li><i>PdfTable</i> <b>table</b> PdfTable behind the event</li>
* <li><i>Object</i> <b>column</b> the column that changed</li>
* </ul>
* @deprecated
* @return {PdfTable}
*/
onColumnWidthChanged: function (fn) {
console.log("this event is deprecated, use onColumnPropertyChanged instead");
this.emitter.on('column-width-changed', fn);
return this;
},
/**
* Add action after a column is added

@@ -422,2 +416,3 @@ * <ul>

*
* @deprecated
* @param {Function} fn

@@ -427,3 +422,3 @@ * @return {PdfTable}

setNewPageFn: function (fn) {
this.newPageFn = fn;
console.log('setNewPageFn is deprecated. Adding a page during process is automatic now. It will be removed on the next release');
return this;

@@ -746,2 +741,6 @@ },

if (!this.pdf.page) {
throw new Error("No page available. Add a page to the PDF before calling addBody()");
}
if (this.showHeaders) {

@@ -767,3 +766,3 @@ this.addHeader();

// Issue #1, restore x position after table is drawn
self.pdf.x = self.pdf.page.margins.left;
this.pdf.x = this.pdf.page.margins.left;

@@ -770,0 +769,0 @@ return this;

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc