Library for generating reports from different source types

Usage no npm install needed!

<script type="module">
  import easyReport from 'https://cdn.skypack.dev/easy-report';



Create reports from different sources

NPM Version


// import package
var pdf = require('easy-pdf');
// init report
var report = pdf.init(options);
// write report to file
var file = report.write(destination, name);
// generate basic HTML report
var html = report.generateHTML(dataOptions);
// generate HTML for include anywhere
var innerHTML = report.generateInnerHTML();


fileName - Report fileName (default: [generated id])
title - Report title (optional) Example: {style: {}, value: 'Report1'}
desc- Report description (optional)
records - Report data
names - Report column names, which should be displayed (Array of objects) Example object: {name: 'user',value: 'User', style: {}} columns - All column names of the records
author - Report author (optional)
headerHeight - Report header height (default: '5mm')
footerHeight - Report footer height (default: '7mm')
border - Report border (default: '5mm')
options - Additional options:
fontSize - Report data font size (default: '12px')
mode - Report orientation (default: 'portrait')
types - Report types to be created (one or more) (default: ['pdf'])
format - Report format (default: 'A4')
paging - Add page numbers (default: false)
time - Add report date & time (default: false)

Supported types:


  • pdf
  • png (need correcting)
  • jpeg (need correcting)
  • docx

Adding custom output type

To add custom type, just copy the type-adaptor template, and implement it:

cd ext/
cp sample.js <your_type>.js 

Configure adapter:

types: ['supported', 'types']

Function which need to be implemented:

generate: function(html, options, filename) {}

html - html input
options - see Options
fileName - output file name

Style class names

pdf-column = column style
pdf-list = list element style
pdf-list-header - list element header style


npm test - run test page generator
npm run clean - clean *.pdf files