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

    voilab-pdf-table

PdfKit wrapper that helps to draw informations in simple tables.


Version published
Weekly downloads
5.2K
increased by0.27%
Maintainers
2
Install size
1.39 MB
Created
Weekly downloads
 

Readme

Source

Voilab Pdf Table

PdfKit wrapper that helps to draw informations in simple tables.

Installation

npm install --save voilab-pdf-table

Usage

// in some service
var PdfTable = require('voilab-pdf-table'),
    PdfDocument = require('pdfkit');

module.exports = {
    create: function () {
        // create a PDF from PDFKit, and a table from PDFTable
        var pdf = new PdfDocument({
                autoFirstPage: false
            }),
            table = new PdfTable(pdf, {
                bottomMargin: 30
            });

        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({
                headerBorder: 'B',
                align: 'right'
            })
            // add table columns
            .addColumns([
                {
                    id: 'description',
                    header: 'Product',
                    align: 'left'
                },
                {
                    id: 'quantity',
                    header: 'Quantity',
                    width: 50
                },
                {
                    id: 'price',
                    header: 'Price',
                    width: 40
                },
                {
                    id: 'total',
                    header: 'Total',
                    width: 70,
                    renderer: function (tb, data) {
                        return 'CHF ' + data.total;
                    }
                }
            ])
            // add events (here, we draw headers on each new page)
            .onPageAdded(function (tb) {
                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([
            {description: 'Product 1', quantity: 1, price: 20.10, total: 20.10},
            {description: 'Product 2', quantity: 4, price: 4.00, total: 16.00},
            {description: 'Product 3', quantity: 2, price: 17.85, total: 35.70}
        ]);

        return pdf;
    }
};
// with express, in some route
app.get('/some/route', function (req, res, next) {
   var pdf = require('some/service').create();
   pdf.pipe(res);
   pdf.end();
});

Page breaks

You can customize how page breaks are done during table process like this:

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;
});

Changelogs

0.5.1

From #End-S

  • added rowshader plugin (see https://github.com/voilab/voilab-pdf-table/pull/42)

various

  • updated dependancies

0.5.0

From #Drieger

  • if value is Number(0) the renderer displays it. It could be a breaking change, so the version is bumped to 0.5.0

0.4.2

  • added ellipsis support (no height calculation is done for this cell)

0.4.1

Thank you, contributors!

From #vikram1992

  • added headerOpacity and headerBorderOpacity in column configuration
  • added headerCellAdded and cellAdded as a function in column configuration

0.4.0

Thank you, contributors!

From #MichielDeMey

  • better handling for padding
  • some modifications about pos calculation

From #cbwebdevelopment

  • added onCellBackgroundAdd and onCellBackgroundAdded events
  • added onCellBorderAdd and onCellBorderAdded events
  • the current row index is passed in events
  • some modifications about pos calculation

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

  • added event onColumnPropertyChanged
  • added event onColumnAdded
  • removed onColumnWidthChanged. Use onColumnPropertyChanged instead. Deprecated mention will be definitively removed in next release
  • Issue #1 fix

0.1.5

First shot

Licence

This code is released under the MIT License (MIT)

Keywords

FAQs

Last updated on 11 May 2021

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc