rechnomat
Create invoices compliant with German E-Rechnung laws.
Installation
git clone https://github.com/sebastianhaberey/rechnomat.git
cd rechnomat
pip install .
playwright install chromium
Invoice PDFs are rendered by driving a headless Chromium instance (via
Playwright) over HTML/CSS templates. playwright install chromium downloads the browser binary Playwright needs; it's a one-time, per-machine step, not a
pip package, and is required before rechnomat render-invoice will work.
Getting started
The tool reads backgrounds/, customers/, invoices/, seller/ and templates/ from the
current directory, not from the installed package. Before running rechnomat render-invoice, run
rechnomat init inside whichever directory you run rechnomat from; it copies these five
folders, pre-filled with example data, from src/rechnomat/resources/ into the current directory.
Folders that already exist are left untouched, so re-running init later only fills in whatever
is still missing; you are notified whether each folder was copied or skipped.
System dependencies for headless Chromium (Linux only)
On Linux, Chromium also needs a handful of shared libraries that aren't installed by default. macOS needs no extra step here - skip this section.
Debian/Ubuntu:
sudo playwright install-deps chromium
Fedora: playwright install-deps only knows how to drive apt-get, so on Fedora it fails
outright (spawn apt-get ENOENT). Install the equivalent packages with dnf instead:
sudo dnf install -y atk at-spi2-atk at-spi2-core cups-libs libXcomposite libXdamage libXfixes
If rechnomat render-invoice fails with "Host system is missing dependencies to run browsers",
run ldd against the downloaded Chromium binary to see exactly which .so is missing:
ldd ~/.cache/ms-playwright/chromium-*/chrome-linux/chrome | grep "not found"
Usage
rechnomat --help
Development
For an editable install with test and lint tooling:
pip install -e '.[dev]'
playwright install chromium
Tests use the example data and templates bundled in src/rechnomat/resources/ directly.
pytest
ruff check .
ruff format --check .
License
MIT - see LICENSE.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rechnomat-0.1.0.tar.gz.
File metadata
- Download URL: rechnomat-0.1.0.tar.gz
- Upload date:
- Size: 523.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ad1b28aea693f3573314440961a921703d2da248e20db498cc5c85fa573d930b
|
|
| MD5 |
68ec2fec3751ac65fe6c82cd7ad8d649
|
|
| BLAKE2b-256 |
1fac24b1bfdc59b7ac0e5c6804762e4a33c79e6e2fd8aebccb37fbd8e4f0fcf2
|
File details
Details for the file rechnomat-0.1.0-py3-none-any.whl.
File metadata
- Download URL: rechnomat-0.1.0-py3-none-any.whl
- Upload date:
- Size: 519.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
33c087b02a7391dc44082b20eacff276c11c87faa2ba644444e9e49dc21a588d
|
|
| MD5 |
20b2fe6c390cd6fe21cdb68d9b590b88
|
|
| BLAKE2b-256 |
6c9888a6ea15cddcf6621ad5e546162fc967d58908dcbfecb543a8bb2c57f7d6
|