Skip to content

gandhidevy/nodeice

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

74 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nodeice

nodeice PayPal Version Downloads Get help on Codementor

Another PDF invoice generator

nodeice

☁️ Installation

$ npm i --save nodeice

📋 Example

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: "[email protected]"
      , 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: "[email protected]"
      , 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);

📝 Documentation

Invoice(options)

This is the constructor that creates a new instance containing the needed methods.

Params

  • Object 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.

Params

  • Function callback: The callback function.

toHtml(output, callback)

Renders the invoice in HTML format.

Params

  • String output: An optional path to the output file.
  • Function callback: The callback function.

Return

  • Invoice The Nodeice instance.

convertToSecondary(input)

Converts a currency into another currency according to the currency balance provided in the options

Params

  • Number input: The number that should be converted

Return

  • Number The converted input

toPdf(options, callback)

Renders invoice as pdf

Params

  • 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

Return

  • Invoice The Invoice instance

😋 How to contribute

Have an idea? Found a bug? See how to contribute.

📜 License

MIT © Ionică Bizău

About

💰 Another PDF invoice generator

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 63.6%
  • HTML 36.4%