This project is intended to be a collection of templates for invoices and letters. While there are many tools and templates out there, I found it difficult to find a simple template that I could easily modify to my needs. The goal of this project is to provide a simple template that can be easily modified to suit also your needs.
| Letter Template | Invoice Template |
|---|---|
Features:
- Invoice Template
- Letter Template
- Support for multiple languages
- Currently only german is supported.
- Support for multiple currencies
- Add support for XRechnung
- Migrate to typst for faster rendering
- Type validation using pydantic
- Support schema validation for VSCode (schemas are located in the
schemasdirectory) - QR Code generation for bank transfer using qrbill
- Support
VAT > 0(currently onlyVAT = 0is supported) - Support multiple pages for invoices
- Easy interaction using just
- Using a
texlive/texlive:latest-fullcontainer for building the templates - Python dependency management using uv
- Keep track of the amount of invoices (using a
csvfile) - Open Thunderbird with the generated pdf as attachment
- Requires Thunderbird to be installed as a
flatpakpackage - Additionally, you need to allow Thunberbird to access the output directory (Note: This is a security risk, as it allows Thunderbird to access all files in the output directory)
- Alternatively you can disable this feature by setting
OPEN_MAILtofalsein the.envfile
- Requires Thunderbird to be installed as a
⚠️ You will need to have podman or docker installed on your system
You can either just clone this repository or create a fork of it. First of all, you need to install the dependencies using uv (if you haven't heard of it, you should google it, and follow a tutorial on how to use it). Additionally I suggest using just.
For initial testing, I created some example configuration files. If you want to customize the templates to your needs, see this file.
Following, you should be able to create your first invoice by running the following command:
just invoice <invoice-path>
# If you just want to generate the example invoice
just invoiceor if you want to create a letter:
just letter <letter-path>
# If you just want to generate the example letter
just letterYou can view all available commands by running just --list (or just just).
This project is licensed under the GNU GPLv3 License - see the COPYING file for details.
The invoice template is inspired by a template from Selfnet e.V..