Benutzerausweise konfigurieren¶
Erstelle Bibliotheksausweise mit Barcode für deine Nutzer.
Übersicht¶
Benutzerausweise werden als PDF erstellt und können auf Papier oder Karton gedruckt, ausgeschnitten und laminiert werden.
Konfiguration¶
Grundeinstellungen¶
# Hintergrundbild (nur der Dateiname, ohne Pfad – Ablageort siehe Abschnitt "Hintergrundbild")
# Standard wenn nicht gesetzt: userlabeltemplate.jpg (im Image enthalten)
USERID_LABEL_IMAGE=ausweis_hintergrund.png
# Breite des Ausweises (CSS-Einheiten: cm, px, vw)
# Standard: 42vw
USERLABEL_WIDTH=9cm
# Ausweise pro Seite
# Standard: 6
USERLABEL_PER_PAGE=6
Barcode¶
Position und Größe des Barcodes auf dem Ausweis:
# Format: ["Top", "Left", "Breite", "Höhe", "Barcode-Typ"]
# Alle Werte als Strings; Position in % (relativ zur Ausweisfläche), Größe in cm oder %
# Standard:
USERLABEL_BARCODE=["80%","63%","3cm","1.6cm","code128"]
| Position | Bedeutung |
|---|---|
Top |
Abstand von oben (z.B. "80%") |
Left |
Abstand von links (z.B. "63%") |
Breite |
Breite des Barcodes (z.B. "3cm") |
Höhe |
Höhe des Barcodes (z.B. "1.6cm") |
Barcode-Typ |
Immer "code128" |
JSON-Format
Der gesamte Wert muss ein gültiges JSON-Array sein. Alle 5 Elemente müssen als Strings in Anführungszeichen stehen. Ein fehlerhafter Wert (z.B. nur eine Zahl) führt zu einem Fehler beim Erzeugen des PDFs.
Optionaler Farbbalken¶
Ein farbiger Balken unterhalb des Hintergrundbilds – nützlich für Klassenfarben:
# Format: [Breite_in_pt, Höhe_in_pt, "Farbe"]
# Beispiel: 5 cm breiter, 20 pt hoher roter Balken:
USERLABEL_SEPARATE_COLORBAR=[141.7, 20, "#cc0000"]
# Zum Deaktivieren: Variable weglassen oder auskommentieren
# USERLABEL_SEPARATE_COLORBAR=
JSON-Format
Auch hier muss der Wert ein gültiges JSON-Array mit 3 Elementen sein: [Breite, Höhe, "Farbe"].
Breite und Höhe sind Zahlen (in Punkten), Farbe ein String (Hex oder CSS-Name).
Nicht einfach 0 setzen – das führt zu einem JSON-Fehler.
Datenzeilen¶
Du kannst beliebig viele Textzeilen auf dem Ausweis platzieren. Die Variablen werden alphabetisch-numerisch sortiert (LINE_1 vor LINE_2 usw.):
# Format: ["Inhalt", "Top", "Left", "Breite", "Padding", "Farbe", Schriftgröße]
# Text % von oben % von links max. Breite Innenabstand Farbe Größe (Zahl!)
USERLABEL_LINE_1=["User.firstName User.lastName","75%","3%","35vw","2pt","black",14]
USERLABEL_LINE_2=["Klasse: User.schoolGrade","82%","3%","35vw","2pt","black",12]
USERLABEL_LINE_3=["Schulbibliothek","5%","3%","35vw","2pt","white",10]
Schriftgröße ist eine Zahl
Das letzte Element (Schriftgröße) ist die einzige Zahl ohne Anführungszeichen. Alle anderen Elemente sind Strings.
Verfügbare Platzhalter¶
| Platzhalter | Wird ersetzt durch |
|---|---|
User.firstName |
Vorname |
User.lastName |
Nachname |
User.schoolGrade |
Klasse |
User.id |
Ausweisnummer |
User.eMail |
Platzhalter können auch kombiniert werden: "User.firstName User.lastName" ergibt z.B. "Anna Müller".
Hintergrundbild¶
- Erstelle ein Bild mit deinem Design (z.B. Schullogo, Farben)
- Empfohlene Größe: 400×250 px oder ähnliches Seitenverhältnis
- Speichere das Bild – je nach Installation an unterschiedlichen Orten (siehe unten)
- Setze
USERID_LABEL_IMAGE=dein_bild.pngin der.env - OpenLibry neu starten
Design-Tool
Tools wie Canva eignen sich gut zum Erstellen von Ausweis-Designs. Exportiere das Ergebnis als PNG oder JPG.
Wo speichere ich das Bild?¶
Lege das Bild in den database/custom/-Ordner auf dem Host-System:
Dieser Ordner ist über das Docker-Volume gemountet und bleibt bei Container-Updates
automatisch erhalten. OpenLibry sucht Dateien zuerst in database/custom/ – wird die
Datei dort nicht gefunden, greift es auf die Standarddatei aus dem Image zurück
(userlabeltemplate.jpg).
Warum nicht /public/?
Der public/-Ordner ist fest ins Docker-Image eingebaut und wird nicht als Volume
gemountet. Dateien, die dort abgelegt werden, gehen beim nächsten docker compose pull
verloren. Eigene Dateien gehören deshalb immer in database/custom/.
Wie prüfe ich, ob das Bild geladen wird?¶
Du kannst den Health-Check-Endpoint aufrufen – er zeigt für jede Vorlagendatei,
ob sie gefunden wurde und aus welcher Quelle (custom oder public):
Im Abschnitt checks.files siehst du den source-Wert für USERID_LABEL_IMAGE:
- "custom" → Datei aus database/custom/ (Docker) oder du hast sie in public/ abgelegt
- "public" → Standarddatei aus dem Image wird verwendet
- "missing" → Datei nicht gefunden, PDF-Erzeugung schlägt fehl
Vollständiges Beispiel¶
# Hintergrundbild (in database/custom/ für Docker, in public/ für Bare Metal)
USERID_LABEL_IMAGE=bibliotheksausweis.png
# Größe und Layout
USERLABEL_WIDTH=8.5cm
USERLABEL_PER_PAGE=8
# Barcode rechts unten
USERLABEL_BARCODE=["70%","60%","3cm","1.6cm","code128"]
# Farbbalken (optional): 142pt breit, 15pt hoch, dunkelblau
USERLABEL_SEPARATE_COLORBAR=[142, 15, "#003366"]
# Textzeilen
USERLABEL_LINE_1=["User.firstName User.lastName","45%","5%","50%","2pt","#333333",12]
USERLABEL_LINE_2=["Klasse User.schoolGrade","55%","5%","50%","2pt","#666666",10]
USERLABEL_LINE_3=["Schulbibliothek Musterstadt","5%","5%","90%","2pt","#ffffff",8]
Ausweise drucken¶
- Gehe zu Reports → Ausweise
- Wähle Nutzer aus:
- Alle Nutzer
- Nach Klasse filtern
- ID-Bereich
- Klicke Erzeuge PDF
- Drucke auf Karton oder dickes Papier
- Ausschneiden und laminieren
Tipps¶
Laminieren: Laminierte Ausweise halten viel länger. Ein kleines Laminiergerät (~30€) lohnt sich.
Farben: Nutze Hex-Codes für Farben: "#ff0000" (rot), "#003366" (dunkelblau), "black", "white".
Positionierung: Die %-Werte für Top und Left beziehen sich auf die gesamte Ausweisfläche.
Probiere die Werte aus und passe sie schrittweise an – erzeuge nach jeder Änderung ein Test-PDF.
Zeilen hinzufügen: Füge einfach weitere USERLABEL_LINE_4, USERLABEL_LINE_5 usw. hinzu.
Die Nummerierung bestimmt die Reihenfolge, in der sie verarbeitet werden.
Nächste Schritte¶
- Reports – Ausweise drucken
- Bücherlabels – Bücher-Etiketten konfigurieren