About Invoice Generator
This invoice generator builds a clean, professional invoice from your business details, a client's details and a list of line items, automatically totalling the subtotal, tax and amount due. It runs entirely in your browser — the amounts you enter, and the client you're billing, never leave your device — and produces a print-ready HTML file you can turn into a PDF with your browser's own print dialog.
What people use it for
Freelance and contract work
Bill a client for a project without paying for invoicing software, especially useful for the occasional invoice rather than a recurring billing relationship.
Small business one-off sales
Produce a proper invoice for a single sale or service call without setting up a full accounting system.
Quotes and estimates
Repurpose the same layout for a quote by relabelling the notes field — the line-item and totals structure works identically for an estimate.
How to use it
- 1
Fill in your business name and address, and the client you're billing.
- 2
Add an invoice number, date and due date.
- 3
List each line item as description, quantity, unit price — one per line.
- 4
Set a tax rate if one applies, then generate the invoice.
- 5
Download the HTML file and print it to PDF, or copy the code to embed elsewhere.
What makes an invoice complete
A usable invoice needs, at minimum, who is billing whom, a unique invoice number for both parties' records, the date issued and the date payment is due, an itemised breakdown of what's being charged for, and a clear total. Most invoicing disputes come from a missing piece of this list — an unclear line item, no due date, or no invoice number to reference in a payment query — rather than from the total itself being wrong.
Why the output is HTML, not a locked PDF
Generating a PDF directly in the browser without a server means pulling in a substantial rendering library just for layout. Producing clean, print-ready HTML instead and letting the browser's own print engine handle the PDF conversion gets an identical result with far less code, and has the side benefit that the HTML file itself stays fully editable if you need to tweak a line after the fact.
Worth knowing
- Give every invoice a unique, sequential invoice number — it's what both sides reference if there's ever a payment query.
- When printing to PDF, disable your browser's own headers and footers in the print dialog so only the invoice itself appears on the page.
- For a recurring client, keep a copy of your filled-in fields somewhere so next month's invoice is a quick edit rather than starting from scratch.