Releases: carlosinho/invoice
Releases · carlosinho/invoice
Initial post-fork
This release adds a bunch of new features compared to the original repo. I needed to make it more versatile to be able to use it for creating invoices in the EU - lots more info needed.
Main things added:
- Logo scaling: Added a
logoScaleparameter to JSON and CLI so you can precisely control the logo size in the top‑right corner without editing the image itself. - Richer JSON config: Extended the example input to support more fields (dates, currency, tax name, paid amount, bank details, etc.) so a single JSON file can fully describe an invoice.
- Invoice layout redesign: Realigned the PDF layout (logo, title, invoice number, dates, seller/buyer columns, dividers) for better readability and to fit more information consistently.
- Custom tax label (
taxName): Added support for a custom tax label (e.g.VAT,GST), used in both per‑item and totals sections instead of a hard‑coded “Tax”. - Totals currency labels: Updated the totals section to display amounts as
123.45 USD(currency code after the number) instead of using symbols like$123.45. - ISO date format: Standardized invoice dates (issue, sale, due) to ISO format
YYYY-MM-DDto avoid locale ambiguity. - Paid amount & total due: Added a
paidfield and now show both “Paid” and “Total due” in the totals section (total gross minus paid). - Billing period: Optional
billingPeriodparameter (JSON/YAML/CLI). When set, it is displayed on the invoice below the due date; the label comes from the language file. Omit to hide. - Multilingual support: Introduced JSON‑based language files in
lang/(e.g.en.json,pl.json) for all fixed labels, with validation to ensure language files are complete. - Skip zero‑quantity items: Items whose quantity is explicitly set to
0are no longer rendered on the invoice. - Config/dep cleanup: Removed non‑functional environment‑variable wiring and the related README section, and cleaned up unused Go dependencies to match the current code.