Kontoauszüge, die sich tatsächlich lesen lassen.

csv2pdf-gui macht aus StarMoney-CSV-Exporten formatierte PDF-Kontoauszüge mit Kopfbereich, Logo und Datum — ohne Ghostscript, ohne ImageMagick, ohne Linux-Kommandozeile. Nur Python, unter Windows, macOS und Linux.

100 % KI programmiert für die Lutherschule Hannover · einzige Abhängigkeit: reportlab

Eine rohe StarMoney-CSV-Datei wird in einen formatierten PDF-Kontoauszug mit Kopfbereich, Buchungstabelle und Fußzeile mit Links umgewandelt.

Vom Rohexport zum vorzeigbaren Beleg

StarMoney exportiert Kontobewegungen als schmucklose CSV-Tabelle — praktisch für die Weiterverarbeitung, aber nichts, das man einem Vorstand, einem Kollegium oder einem Fördermitglied in die Hand drücken möchte.

csv2pdf-gui übernimmt genau diesen letzten Schritt: Es gruppiert Buchungen nach Tag, sortiert Gutschriften vor Abbuchungen, setzt alles in einer sauberen Monospace-Tabelle und legt einen Kopfbereich mit Schullogo, Kontoname und Datum darüber. Das Original-Bash-Skript der Lutherschule Hannover brauchte dafür sechs externe Linux-Werkzeuge. Diese Neuimplementierung braucht keines davon.

„Alles passiert direkt in Python — lauffähig unter Windows, ohne die Linux-Kommandozeilentools des Originals.“

Was das Tool übernimmt

Sechs Punkte, die den Unterschied zwischen einer Rohdatei und einem fertigen Beleg ausmachen.

Logo frei wählbar

PNG, JPG, GIF oder BMP — wird automatisch auf 78×60 pt skaliert, Seitenverhältnis bleibt erhalten. Kein Logo? Dann bleibt der Kopf einfach leer.

Kopf-Schriftart einstellbar

Helvetica, Times-Roman oder Courier ohne Zusatzdatei — oder eine eigene .ttf/.otf. Die Buchungstabelle bleibt bewusst immer Courier.

Links im Fußbereich

Schulordnung, Kontakt, Datenschutzerklärung — beliebig viele klickbare Links, verankert auf der letzten Seite jedes Kontoauszugs.

Ordner automatisch überwachen

Prüft den Exportordner in einstellbarem Intervall und verarbeitet nur neu hinzugekommene CSV-Dateien — bereits erledigte bleiben unangetastet.

CSV-Originale bleiben erhalten

Der sicherere Standard dieser Portierung: Quelldateien werden nur auf ausdrücklichen Wunsch gelöscht, nicht automatisch.

Windows, macOS und Linux

Reines Python mit nur einer Abhängigkeit (reportlab). Keine plattformspezifischen Zusatzwerkzeuge nötig.

Ablauf in drei Schritten

Vom Export in StarMoney bis zum fertigen Beleg im Ordner.

StarMoney-CSV-Export fließt in csv2pdf-gui und wird dort zu einem fertigen PDF-Kontoauszug verarbeitet.

StarMoney exportieren

Unter Verwaltung → Datenexport → CSV-Spaltenkonfiguration ein Exporttemplate mit den Spalten „Buchungstag“, „Begünstigter/Absender – Name“, „Betrag“ und „Saldo“ anlegen. Nur CSVs in diesem Format werden aktuell korrekt verarbeitet.

Ordner auswählen und Regler setzen

In der grafischen Oberfläche den Export-Ordner wählen, bei Bedarf Logo und Kopf-Schriftart einstellen, dann auf „Kontoauszüge erstellen“ klicken.

Fertige PDFs abholen

Jede Datei landet als <Konto>_<Datum>.pdf im selben Verzeichnis. „Ordner öffnen“ zeigt sie direkt im Explorer bzw. Finder.

Installation

Drei Wege, je nach Betriebssystem — überall dieselbe Logik, nur eine Abhängigkeit.

  1. Python installieren von python.org/downloads/windows. Im Installer unbedingt „Add python.exe to PATH“ ankreuzen.
  2. Abhängigkeit installieren in Eingabeaufforderung oder PowerShell:
    pip install -r requirements.txt
    # einzige Abhängigkeit: reportlab
  3. Pillow optional nachinstallieren, falls die GUI-Logovorschau auch JPG/BMP anzeigen soll: pip install Pillow. PNG/GIF funktioniert auch ohne, die PDF-Erzeugung selbst ebenfalls.
  4. Starten per Doppelklick auf start_gui.bat — öffnet die grafische Oberfläche direkt.
Benötigt tkinter. Das ist im offiziellen Windows-Installer von python.org standardmäßig dabei — bei einer benutzerdefinierten Installation „tcl/tk and IDLE“ angehakt lassen.
  1. Python installieren, falls nicht vorhanden — von python.org/downloads/macos oder per Homebrew (brew install python). macOS bringt oft eine alte Python-2-Version mit: python3/pip3 verwenden.
  2. Abhängigkeit installieren im entpackten Ordner:
    pip3 install -r requirements.txt
  3. Starten:
    python3 starmoney_export.py    # Kommandozeile
    python3 starmoney_gui.py # grafische Oberfläche
    Alternativ liegen start_gui_mac.command und start_export_mac.command bei — vor dem ersten Doppelklick einmalig ausführbar machen:
    chmod +x start_gui_mac.command start_export_mac.command
  4. Gatekeeper-Warnung? Da die Dateien aus dem Internet stammen, blockiert macOS den ersten Start eventuell. Im Finder mit Rechtsklick → „Öffnen“ starten statt per Doppelklick — nur beim ersten Mal nötig.
Bei Problemen mit Rechten, fehlendem tkinter oder einer „externally-managed-environment“-Meldung: die Datei TROUBLESHOOTING_MACOS.md enthält die in der Praxis aufgetretenen Fehler im Wortlaut samt Lösung.

Für den Einsatz ohne Fenster — etwa als geplante Aufgabe oder Hintergrundprozess.

python starmoney_export.py [Exportverzeichnis] [--delete-csv] [--watch [SEKUNDEN]]
  1. Ohne Pfadangabe wird der Ordner export_auszuege neben dem Skript verwendet.
  2. --delete-csv löscht die Original-CSVs nach erfolgreicher Verarbeitung. Ohne dieses Flag bleiben sie erhalten — der sicherere Standard dieser Portierung.
  3. --watch [SEKUNDEN] lässt das Skript dauerhaft laufen (Standard 30 s) und verarbeitet automatisch nur neue Dateien:
    python starmoney_export.py --watch 60
  4. Alternativ Doppelklick auf start_export.bat — ein einmaliger Lauf ohne --watch, ohne GUI.

Logo, Schrift und Links konfigurieren

Kein festes Schullogo mehr im Code — alles liegt in einer einfachen config.json neben dem Skript.

Über die Kommandozeile

python starmoney_export.py --logo "C:\Pfad\logo.png" \
--header-font Times-Roman --save-config
python starmoney_export.py --logo "" \
--header-font-file "C:\Pfad\Schrift.ttf" --save-config

--save-config schreibt die Werte dauerhaft in config.json. Ohne dieses Flag gilt die Angabe nur für den einen Aufruf. In der GUI liegen dieselben Felder unter Optionen → Einstellungen und speichern automatisch bei jeder Änderung.

Links im Fußbereich (footer_links)

"footer_links": [
{"name": "Schulordnung",
"url": "https://schule.example/ordnung.pdf"},
{"name": "Kontakt",
"url": "https://schule.example/kontakt"}
]

Der Name erscheint sichtbar als Linktext, die URL nur als Klickziel dahinter. Sind weder Logo noch Links konfiguriert, erscheint gar kein Fußbereich.

Eigenständige .exe gewünscht? pip install pyinstaller, dann pyinstaller --onefile starmoney_export.py — muss auf einem Windows-Rechner laufen, da PyInstaller nicht plattformübergreifend kompiliert.

Rechtliches