Invoice Generator

Fill in a company and client, add line items, and download a print-ready A4 PDF invoice with totals and an optional PAID stamp.

The PDF is generated locally with pdf-lib; your business data is stored only in this browser's local storage.

From (your company)
Bill to (client)
Logo (optional)
Line items
DescriptionQtyUnit priceAmount
Subtotal—
%
Tax0.00
Total—

How It Works

The PDF is composed in your browser by pdf-lib with Helvetica, one of the 14 standard PDF base fonts, so every reader on earth can render it without embedded font files. Long descriptions are wrapped by measuring candidate lines with the font metrics before drawing, which is how the text stays inside the column instead of spilling. Every field you type is debounced into this browser's local storage, so tomorrow the form is still full.

Why invoices ship as PDF, not documents
An invoice is a record you may have to produce again in an audit years later, and PDF's job is exactly that: a fixed layout that looks identical regardless of the software, fonts or screen of whoever opens it — editable formats cannot promise what was sent is what was seen. That immutability is also why the stamp is drawn into the file rather than being a filter you overlay afterwards.
A4, in points
The page is A4 at 595.28 × 841.89 points (72 pt = 1 in; A4 is 210 × 297 mm), with a 50 pt margin grid: header, the bill-to blocks, the items table, totals right-aligned, then notes and terms. Roughly 20 line items fit on one page; beyond that the generator stops with a clear message instead of silently printing off-sheet.
Symbols, not exchange rates
The currency field is a decorative prefix — a symbol pasted in front of the numbers you typed, drawn with the Latin-1 glyphs Helvetica carries ($ € £ ¥ work; exotic symbols may show as blanks). No conversion, no FX API, no live rates: totals are quantity × unit price, plus your optional tax percentage, formatted with your browser's locale.

Frequently Asked Questions

Is this a legal invoice?

The document you produce has everything an invoice needs — supplier and client identification, an invoice number, issue and due dates, item lines with quantities and prices, and totals — and in most countries that content is exactly what tax law asks for. What makes an invoice legally compliant is the accuracy of your real details and the mandatory extras of your jurisdiction (VAT or GST registration numbers, reverse-charge wording, local sequential numbering rules). Add those yourself; this tool does not know your tax regime and does not give tax advice.

Can I send recurring invoices?

No — there is no scheduling or subscription engine, because nothing runs on a server to schedule. If you invoice monthly, download one PDF, keep the file, and rebuild next month with the form still filled in (the draft is saved in this browser): change the invoice number and dates and export again.

Can I add my logo?

Yes, an optional logo sits in the top-right corner of the PDF. Upload a PNG or JPG up to 2 MB — it is embedded as-is and scaled to fit a 170 × 70 pt box, keeping the aspect ratio. The logo is kept in memory only; the saved text draft does not include it, so re-attach it after clearing or on another device.

Why are currency symbols limited to basic ones?

The PDF is written with the standard PDF base fonts (Helvetica), which cover the Latin-1 range: $, €, £, ¥ and friends render everywhere, while symbols like ₹ or ₿ are outside that encoding and may show as blanks. The field takes any symbol you type and the on-screen totals show it fully — only the PDF text is font-limited — and no exchange-rate conversion happens anywhere.

Is anything uploaded to a server?

No. The PDF is composed locally with pdf-lib in your browser tab, and your company, client and line-item data are kept in this browser's local storage so the form is still filled tomorrow. Nothing is transmitted to this site or anyone else — clearing site data erases the draft.