![Invoice](https://private-user-images.githubusercontent.com/42545625/248511491-16dae9d9-390c-49b6-aedd-3f882b17f57b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE4NTQ2NzIsIm5iZiI6MTcyMTg1NDM3MiwicGF0aCI6Ii80MjU0NTYyNS8yNDg1MTE0OTEtMTZkYWU5ZDktMzkwYy00OWI2LWFlZGQtM2Y4ODJiMTdmNTdiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MjQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzI0VDIwNTI1MlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWVjNDY1OTAzNmRkN2NjYjk4Y2UwMDk0ZGFkNDA4ZDBkZDllNzg2YTE3MDZkYWFhMmQ0NWVkMGY4YTNjOGY2YTkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.YBCyEbMS1mRRJ9QVeb1euAKMoEwvzpHFi2qnJDixv6s)
Generate invoices from the command line.
invoice generate --from "Dream, Inc." --to "Imagine, Inc." \
--from-address "1 main road,newyark,567 999" \
--to-address "234/4566 second-main street,washington,568 9899" \
--item "Rubber Duck" --quantity 2 --rate 25 \
--tax 0.13 --discount 0.15 \
--note "For debugging purposes."
View the generated PDF at invoice.pdf
, you can customize the output location
with --output
.
open invoice.pdf
To use an address which includes special separators like ,
enclose the text using a single quote "
must be provided to cli as below
--from-address '"1865 N Charlotte st",Suite32,"Nothaman, SN 02317"
--to-address "135 Wehawken St.,\"Raleigh, NC 34217\""
![Example invoice](https://private-user-images.githubusercontent.com/42545625/248511492-13153de2-dfa1-41e6-a18e-4d3a5cea5b74.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE4NTQ2NzIsIm5iZiI6MTcyMTg1NDM3MiwicGF0aCI6Ii80MjU0NTYyNS8yNDg1MTE0OTItMTMxNTNkZTItZGZhMS00MWU2LWExOGUtNGQzYTVjZWE1Yjc0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MjQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzI0VDIwNTI1MlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTMwMDkxMjg5ZjdiNTFlNGZkN2NlMjNmYmZjM2QxMWEwYzFiNWY3MWRkNzE1NmE1ZmM0NTkyMGZhNGE5ZDMzOWUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.BM6tKTiXRLEv6CuVAXXkZiNtz9KZ1891jymKt06g_IA)
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
Or, save repeated information with JSON / YAML:
{
"logo": "/path/to/image.png",
"from": "Dream, Inc.",
"from_address": "1 main road,newyark,567 8989",
"to_address": "345/66 main-second street,washington,699-090",
"to": "Imagine, Inc.",
"tax": 0.13,
"items": ["Yellow Rubber Duck", "Special Edition Plaid Rubber Duck"],
"quantities": [5, 1],
"rates": [25, 25],
}
Generate new invoice by importing the configuration file:
invoice generate --import path/to/data.json \
--output duck-invoice.pdf
If you would like a custom invoice template for your business or company, please reach out via:
Install with Go:
go install github.com/maaslalani/invoice@main
Or download a binary from the releases.
I'd love to hear your feedback on improving invoice
.
Feel free to reach out via:
zzz