An example invoice template that demonstrates procedurally generated documents based on JSON input data. See preview.json
for the source data of the above preview. This template can be rendered to PDF using Nota. This was the first template made and actualy used in prodution by Aerix. Producing such invoices was the driver that sparked the development of Nota in 2013.
- Does all the invoice arithmatic for you (subtotals, VAT, discounts, no more embarrasing calculator mistakes guaranteed).
- Supports quotations. Automatically switches between invoice and quotation mode based on type specified in meta data.
- Invoice internationalisation. Detects country of client and automatically sets language (Dutch and English supported, but more could easily be added).
-
Automatically formats output PDF filename (based on ID, client and project title). For example
2014.0044_Client-Company-Optional-project-name.pdf
. See the link to the source code for cases of formatting. - Invoice model validation. An error is throw when attempting to render an invalid invoice to prevent sending out faulty invoices to clients.
- Expiration date. Expiration date of the invoice (or quotation) expires is calculated based on a configurable validity period.
- And many more ...
- Handlebars.js
- i18next.js
- Moment.js
- TV4.js
- jQuery
- Sass
- Bourbon
- CoffeeScript
- RequireJS
- Grunt
- Bower
This template comes by default with the Nota CLI as an example. Install it using npm install nota-cli
.
In the Nota CLI folder, run ./nota --template=example-invoice --preview
for a preview.
In the Nota CLI directory, run ./nota --template=example-invoice --data=<path/to/data.json
. The output PDF will be located in the same directory. Specify the location with the flag --output=<path/to/output.pdf>
, and try the other options available with ./nota --help
.
You'll need
- NodeJS
- NPM
- Bower
- Gulp
- Bourbon
Run grunt
in the template directory for automagically compiling SASS and CoffeeScript.