Wouldn’t it be awesome if you write a command with some arguments and it generates an invoice for you instantly? Here’s how to do it!
Introducing Invoice CLI
Generate invoices from the command line using this CLI tool
Installation
Install with Go:
go install github.com/maaslalani/invoice@main
Or download a binary from the releases.
Command Line Interface
invoice generate --from "Company A, Inc." --to "Company B, Inc." \ --item "Laptop" --quantity 2 --rate 500 \ --tax 0.1 --discount 0.15 \ --note "Paid via online transfer"
The PDF would be generated in the same folder in which you are running the command. You can customize the output location with --output
.
Sample output
Here’s an example of the generated PDF after running the above command
Environment
Save repeated information with environment variables:
export INVOICE_LOGO=/path/to/image.png
export INVOICE_FROM="Dream, Inc."
export INVOICE_TO="Imagine, Inc."
export INVOICE_TAX=0.13
export INVOICE_RATE=25
Generate new invoice:
invoice generate \
--item "Yellow Rubber Duck" --quantity 5 \
--item "Special Edition Plaid Rubber Duck" --quantity 1 \
--note "For debugging purposes." \
--output duck-invoice.pdf
Configuration File
Or, save repeated information with JSON / YAML:
{
"logo": "/path/to/image.png",
"from": "Dream, Inc.",
"to": "Imagine, Inc.",
"tax": 0.13,
"items": ["Yellow Rubber Duck", "Special Edition Plaid Rubber Duck"],
"quantities": [5, 1],
"rates": [25, 25],
}
Generate a new invoice by importing the configuration file:
invoice generate --import path/to/data.json \
--output duck-invoice.pdf
Custom Templates
Unfortunately, The CLI doesn’t allow custom invoice templates. If you would like a custom invoice template for your business or company, please reach out to the author via:
Also, Read Machine Learning for beginners, a Free curriculum from Microsoft