You can now sponsor us on Github: https://github.com/sponsors/NathanaelA
See: https://www.fluentreports.com for more information.
Fluent Reports - Data Driven PDF Reporting Engine for Node.js and Browsers
Try out the reporting engine in your own browser at https://www.fluentreports.com/demo.html
npm install fluentreports
Use: const Report = require( 'fluentReports' ).Report;
Please use import { Report } from 'fluentReports/lib/esm/fluentReports.mjs';
as the ESM wrapper is located in the /lib/esm/ folder...
Please read the commands.md file for an overview of all the commands. The files in the docs/
folder are generated from the source code via jsdocs, so they might be more up to date.
Please read the examples readme file for a list of examples.
Please read the tutorial.md file for the tutorials.
See the simple & stupid examples for a overview on how to generate a somewhat complex report. In these reports I tried to throw in a chunk of the features to try and give you and idea how powerful the engine is and how to use certain features.
Currently, we ship multiple examples.
There is a demo_html.htm
file in the examples
folder that shows how to setup a browser ONLY based report the runs 100% in a browser.
There is a readme.md in the generator
folder for how to do a browser based reporting system with GUI that runs in the browser.
This following report is using the a few of the simplest report methods. We can show you how quickly you can create a simple report.
You have the ability to EASILY FULLY override any and all of the Headers, Footers, and Detail bands (and much more).
Really Simple Report:
// Our Simple Data in Object format:
const data = [{name: 'Elijah', age: 18}, {name: 'Abraham', age: 22}, {name: 'Gavin', age: 28}];
// Create a Report
const rpt = new Report("Report.pdf")
.pageHeader( ["Employee Ages"] ) // Add a simple (optional) page Header...
.data( data ) // Add some Data (This is required)
.detail( [['name', 200],['age', 50]]) // Layout the report in a Grid of 200px & 50px
.render(); // Render the Report (required if you want output...)
One other sample report using a list type output:
const data = [
{item: 'Bread', count: 5, unit: 'loaf'},
{item: 'Egg', count: 3, unit: 'dozen'},
{item: 'Sugar', count: 32, unit: 'gram'},
{item: 'Carrot', count: 2, unit: 'kilo'},
{item: 'Apple', count: 3, unit: 'kilo'},
{item: 'Peanut Butter', count: 1, unit: 'jar'}
];
const rpt = new Report("grocery1.pdf")
.data( data ) // Add our Data
.pageHeader( ["My Grocery List"] ) // Add a simple header
.detail("{{count}} {{unit}} of {{item}}") // Put how we want to print out the data line.
.render(); // Render the Report (required if you want output...)
See the generator documentation