Add visual template coordinate editor
This commit is contained in:
@@ -99,7 +99,7 @@ public sealed class LayoutParser
|
||||
private static float Number(string value) => float.TryParse(value, NumberStyles.Float,
|
||||
CultureInfo.InvariantCulture, out var result) ? result : throw new FormatException($"„{value}“ ist keine Zahl.");
|
||||
|
||||
internal static float Percentage(string value)
|
||||
public static float Percentage(string value)
|
||||
{
|
||||
var normalized = value.EndsWith('%') ? value[..^1] : value;
|
||||
var result = Number(normalized);
|
||||
|
||||
@@ -25,3 +25,20 @@ ist weiterhin ein normales `.lavorlage`-Paket und kann deshalb importiert oder e
|
||||
|
||||
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.
|
||||
|
||||
Reference in New Issue
Block a user