I know quickbooks is overkill for most tiny businesses, but I feel this is overkill in the other direction (extreme underkill?). In QB, generating a new invoice is a button click, and it can even import everything I have "billed/assigned" to the client automatically if I didn't want to type it in (I do this with expenses and project hours).
; create a folder with the following files:
; - payee.txt - containing the company address;
; - payor.txt - containing the client's address;
; - invoice-number.txt - containing the last current invoice number. Incremented automatically;
; - tax-rate.txt - containing the tax rate (i.e. 13);
; - pay-interval.txt - containing the pay interval (i.e. 30);
; - locale.txt - containing the date locale (i.e. 'en');
; - branch-address.txt - containing the bank branch address;
; - account-info.txt - containing the bank account information;
; - invoice-lines.txt - containing the invoice lines.
; run the program and the invoice will be generated inside the folder, sent to PDF and the printer at once.