Invoice Generator JS
A lightweight and easy-to-use JavaScript invoice generator that works with Vanilla JS, React, Next.js, Angular, and more. Generates a professional invoice in HTML and allows users to download it as PDF using html2pdf.js
.
๐ Features
- ๐ Generate professional invoices
- ๐ฆ Works in React, Next.js, Angular, and Vanilla JS
- ๐งพ Add client and company details, items, taxes
- ๐ฅ Download invoice as PDF (via
html2pdf.js
)
- ๐ฏ Easy integration with any frontend project
๐ฆ Installation
Install via npm:
npm install vanilla-js-invoice-generator
Or include directly via CDN:
<script src="https://cdn.jsdelivr.net/npm/vanilla-js-invoice-generator@latest"></script>
๐ ๏ธ Usage
1. Create a Container
Add a container in your HTML where the invoice will be rendered:
<div id="invoice-container"></div>
2. Use generateInvoice
Import and call the function:
import { generateInvoice } from 'vanilla-js-invoice-generator';
generateInvoice('invoice-container', {
companyName: "Forange Inc",
companyAddress: "Nashik, India",
companyPhone: "+91 1234567890",
companyEmail: "support@forangex.com",
clientName: "Ravi Pandey",
clientCompany: "Freelancer",
clientAddress: "Patna, Bihar",
invoiceDate: "28/05/2025",
invoiceNumber: "INV-1001",
items: [
{ name: "Website Development", qty: 1, price: 5000 },
{ name: "Hosting Services", qty: 1, price: 2000 }
],
taxRate: 18
});
3. Enable PDF Download
Make sure to include html2pdf.js
for PDF support:
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2pdf.js/0.10.1/html2pdf.bundle.min.js"></script>
A "Download PDF" button will automatically appear at the bottom of the invoice.
๐ผ๏ธ Output Sample
- Company and client information
- Table of items with quantity, price, and total
- Tax calculation
- Download PDF button
๐ง Configuration Options
companyName | string | Your company name |
companyAddress | string | Company address |
companyPhone | string | Contact phone |
companyEmail | string | Contact email |
clientName | string | Client name |
clientCompany | string | Client company name |
clientAddress | string | Client address |
invoiceDate | string | Invoice creation date |
invoiceNumber | string | Unique invoice number |
items | array | List of invoice items with name , qty , price |
taxRate | number | Tax percentage (e.g. 18 ) |
๐งช Test Locally
Create a test.html
file:
<script src="https://cdn.jsdelivr.net/npm/vanilla-js-invoice-generator@latest"></script>
<script>
generateInvoice('invoice-container', { ... });
</script>
๐จโ๐ป Author
Ravi Pandey
๐ https://imravidev.vercel.app
๐ง imravipanday@gmail.com
๐ License
This project is licensed under the MIT License.