63 lines
2.9 KiB
Markdown
63 lines
2.9 KiB
Markdown
# LehrerApp Templating
|
||
|
||
## Freie Paketmetadaten
|
||
|
||
Jedes neu gespeicherte `.lavorlage`-Paket enthält eine lesbare `metadata.txt`. Pro Zeile steht ein
|
||
frei wählbares Schlüssel-Wert-Paar; leere Zeilen und mit `#` beginnende Kommentare werden beim
|
||
Einlesen ignoriert:
|
||
|
||
```text
|
||
language=de-DE
|
||
report-type=parent-letter
|
||
school-year=2026/27
|
||
```
|
||
|
||
Werte dürfen ein weiteres `=` enthalten. Schlüssel sind ohne Beachtung der Groß-/Kleinschreibung
|
||
eindeutig und Werte bleiben einzeilig. Der Loader stellt sie der Anwendung direkt über
|
||
`loadedTemplate.Manifest.Metadata` zur Verfügung. Bestehende Pakete ohne `metadata.txt` werden
|
||
weiterhin mit einer leeren Metadatensammlung geladen. Die empfohlenen Standardschlüssel stehen
|
||
zusätzlich als `TemplateMetadataKeys.Language` und `TemplateMetadataKeys.ReportType` bereit.
|
||
|
||
## Bildskalierung
|
||
|
||
`IMG` unterstützt neben dem festen Begrenzungsrahmen eine optionale prozentuale Skalierung:
|
||
|
||
```text
|
||
IMG logo.png 15 15 30 12 scale=50%
|
||
```
|
||
|
||
Der Rahmen von `30 × 12` Layout-Einheiten wird dabei auf `15 × 6` skaliert. `x` und `y`
|
||
bleiben unverändert. Das Bild wird mit erhaltenem Seitenverhältnis in diesen Rahmen eingepasst.
|
||
Ohne `scale` gilt wie bisher `100%`. Zulässig sind Werte größer als `0` bis einschließlich
|
||
`1000%`.
|
||
|
||
## Wiederverwendbare Ausgangsvorlagen
|
||
|
||
Der TemplateDesigner verwaltet lokale Ausgangsvorlagen im Benutzerprofil. Eine Ausgangsvorlage
|
||
ist weiterhin ein normales `.lavorlage`-Paket und kann deshalb importiert oder exportiert werden.
|
||
|
||
- **Bearbeiten** öffnet die Ausgangsvorlage mit ihrer stabilen ID. Erneutes Speichern aktualisiert sie.
|
||
- **Als neues Projekt** kopiert Layout, Platzhalter und sämtliche Assets, vergibt aber eine neue ID.
|
||
- **Duplizieren** erzeugt eine weitere unabhängige Ausgangsvorlage.
|
||
- **Vorschau** rendert die Vorlage mit typgerechten Beispieldaten, ohne das aktuelle Projekt zu ändern.
|
||
|
||
Die Bibliothek liegt unter `LehrerApp/TemplateDesigner/starter-templates` im plattformspezifischen
|
||
Anwendungsdatenverzeichnis und wird nicht in das LehrerApp-Repository oder Release eingebettet.
|
||
|
||
## Visueller Koordinateneditor
|
||
|
||
Die QuestPDF-Vorschau dient gleichzeitig als maßstabsgetreue Zeichenfläche. Der Designer bildet
|
||
das tatsächlich sichtbare Seitenrechteck unabhängig von Zoom und freien Rändern auf die `PAGE`-
|
||
Koordinaten ab:
|
||
|
||
```text
|
||
dslX = (mausX - seitenrandLinks) / angezeigteSeitenbreite * pageWidth
|
||
dslY = (mausY - seitenrandOben) / angezeigteSeitenhöhe * pageHeight
|
||
```
|
||
|
||
Im Messmodus übernimmt ein Klick `x/y`; ein aufgezogener Bereich übernimmt zusätzlich Breite und
|
||
Höhe ins Elementformular. Im Bearbeitungsmodus lassen sich vorhandene Elemente verschieben und -
|
||
außer einzeiligem `TEXT` - am rechten unteren Anfasser skalieren. Rasterfang und Pfeiltasten sind
|
||
für Feinkorrekturen verfügbar. Änderungen werden in die ursprüngliche DSL-Zeile zurückgeschrieben,
|
||
wobei Inhalte, Platzhalter, Formatangaben und Attribute erhalten bleiben.
|