
Company News
Socket Named Top Sales Organization by RepVue
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.
Another PDF invoice generator
$ npm i --save nodeice
const Invoice = require("nodeice");
// Create the new invoice
let myInvoice = new Invoice({
config: {
template: __dirname + "/template/index.html"
, tableRowBlock: __dirname + "/template/blocks/row.html"
}
, data: {
currencyBalance: {
main: 1
, secondary: 3.67
}
, invoice: {
number: {
series: "PREFIX"
, separator: "-"
, id: 1
}
, date: "01/02/2014"
, dueDate: "11/02/2014"
, explanation: "Thank you for your business!"
, currency: {
main: "XXX"
, secondary: "ZZZ"
}
}
, tasks: [
{
description: "Some interesting task"
, unit: "Hours"
, quantity: 5
, unitPrice: 2
}
, {
description: "Another interesting task"
, unit: "Hours"
, quantity: 10
, unitPrice: 3
}
, {
description: "The most interesting one"
, unit: "Hours"
, quantity: 3
, unitPrice: 5
}
]
}
, seller: {
company: "My Company Inc."
, registrationNumber: "F05/XX/YYYY"
, taxId: "00000000"
, address: {
street: "The Street Name"
, number: "00"
, zip: "000000"
, city: "Some City"
, region: "Some Region"
, country: "Nowhere"
}
, phone: "+40 726 xxx xxx"
, email: "me@example.com"
, website: "example.com"
, bank: {
name: "Some Bank Name"
, swift: "XXXXXX"
, currency: "XXX"
, iban: "..."
}
}
, buyer: {
company: "Another Company GmbH"
, taxId: "00000000"
, address: {
street: "The Street Name"
, number: "00"
, zip: "000000"
, city: "Some City"
, region: "Some Region"
, country: "Nowhere"
}
, phone: "+40 726 xxx xxx"
, email: "me@example.com"
, website: "example.com"
, bank: {
name: "Some Bank Name"
, swift: "XXXXXX"
, currency: "XXX"
, iban: "..."
}
}
});
// Render invoice as HTML and PDF
myInvoice.toHtml(__dirname + "/my-invoice.html", (err, data) => {
console.log("Saved HTML file");
}).toPdf(__dirname + "/my-invoice.pdf", (err, data) => {
console.log("Saved pdf file");
});
// Serve the pdf via streams (no files)
require("http").createServer((req, res) => {
myInvoice.toPdf({ output: res });
}).listen(8000);
Invoice(options)This is the constructor that creates a new instance containing the needed methods.
options: The options for creating the new invoice:config (Object):
template (String): The HTML root template.data (Object):
currencyBalance (Object):
main (Number): The main balance.secondary (Number): The converted main balance.tasks (Array): An array with the tasks (description of the services you did).invoice (Object): Information about invoice.seller (Object): Information about seller.buyer (Object): Information about buyer.initTemplates(callback)Inits the HTML templates.
callback: The callback function.toHtml(output, callback)Renders the invoice in HTML format.
output: An optional path to the output file.callback: The callback function.Nodeice instance.convertToSecondary(input)Converts a currency into another currency according to the currency balance provided in the options
input: The number that should be convertedtoPdf(options, callback)Renders invoice as pdf
Object|String|Stream options: The path the output pdf file, the stream object, or an object containing:
output (String|Stream): The path to the output file or the stream object.
converter (Object): An object containing custom settings for the phantom-html-to-pdf.
Function callback: The callback function
Have an idea? Found a bug? See how to contribute.
Another way to support the development of my open-source modules is to set up a recurring donation, via Patreon. :rocket:
PayPal donations are appreciated too! Each dollar helps.
Thanks! :heart:
FAQs
Another PDF invoice generator
The npm package nodeice receives a total of 8 weekly downloads. As such, nodeice popularity was classified as not popular.
We found that nodeice demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 0 open source maintainers collaborating on the project.
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.

Company News
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.

Security News
NIST will stop enriching most CVEs under a new risk-based model, narrowing the NVD's scope as vulnerability submissions continue to surge.

Company News
/Security News
Socket is an initial recipient of OpenAI's Cybersecurity Grant Program, which commits $10M in API credits to defenders securing open source software.