models/beleg_raster library

Zeichenraster (Zwilling von renderReceiptGrid im JS-Paket @kreiseck/kasseneck-api): der Beleg als Zeilen mit exakt N Zeichen (58 mm = 32, 80 mm = 48) — die eine Wahrheit für Bildschirm, Bondruck und PDF. Regeln (fest, damit überall dasselbe herauskommt):

  • Spalten in Zwölfteln → ganze Zeichen (floor(N*w/12), Rest an die letzte, jede mindestens 1); zwischen zwei Spalten immer mindestens ein Leerzeichen (letztes Zeichen jeder nicht-letzten Spalte); die letzte Spalte endet bündig am rechten Rand.
  • Text/Aufdruck/Spalteninhalt bricht wortweise (letztes Leerzeichen innerhalb der Breite, Leerzeichen fällt weg; ohne Leerzeichen hart).
  • Trennlinie über die volle Breite, Leerraum als Leerzeilen, QR als eigene Zeile mit Nutzlast (der Zeichner setzt das Bild). Die Golden-Dateien test/fixtures/belege/erwartet/*.grid32.txt|grid48.txt des JS-Pakets halten beide Seiten zeichengenau gleich.

Enums

RasterArt

Constants

zeichen58mm → const int
zeichen80mm → const int

Functions

rasterSpaltenBreiten(List<int> zwoelftel, int zeichen) List<int>
Zwölftel → Zeichen je Spalte (ganze Zeichen, Rest an die letzte, mindestens 1).
wortzeilen(String text, int max) List<String>
Wortweiser Umbruch auf höchstens max Zeichen (Zwilling von wortzeilenText): geschütztes Leerzeichen bricht nie (wird als Leerzeichen ausgegeben), ein überlanges Wort bricht nach einem Bindestrich, sonst hart.