models/receipt_sheet library

Das Beleg-Blatt (Zwilling von receiptSheet in @kreiseck/kasseneck-api ab 0.14.0): die vollstaendige Folge dessen, was auf dem Papier steht -- Rasterzeilen, Firmenlogo, QR und Marke, Groessen als Anteil der Blattbreite und in Zeilen. Jeder Zeichner (Bon, Bildschirm) setzt nur noch das Blatt.

Masseinheit ist der Druckkopf: ein Zeichen 12 Punkte, eine Zeile 24. Die Goldens test/fixtures/vertrag/expected/*.sheet32.json|sheet48.json halten beide Seiten gleich; die Rechenreihenfolge nicht umstellen.

Classes

LogoDimensions
ReceiptSheet
SheetBlock
SheetBrandMark
Das Kasseneck-Logo am Belegende, als Rasterbild fest in width x height Druckpunkten -- diese Masse kommen aus brandMarkRasters, nicht aus einem Anteil der Blattbreite: das Raster liegt fertig vor (Vertrag), nur welches der beiden Masse gilt, entscheidet die Papierbreite.
SheetLine
SheetLogoBlock
SheetQr

Constants

dotsPerChar → const int
dotsPerLine → const int

Functions

logoDimensions(int chars) → LogoDimensions
Ins Kaestchen der Stufe eingepasst, nie hochgerechnet (1 Bildpixel hoechstens 1 Druckpunkt).
logoRasterSize(LogoDimensions dimensions, int chars) → ({int height, int width})
paperSizeForChars(int chars, String fallback) → KeckPaperSize
qrFitsInVersion(String payload) → bool
Ob payload in irgendeine QR-Version bei Korrektur M passt -- dieselbe Tabelle wie qrModuleCount, aber ohne zu werfen (npm qrPasstInVersion).
qrModuleCount(String payload) → int
qrSheetWidthFraction(String payload, KeckPaperSize paper, {QrModuleSize moduleSize = QrModuleSize.auto}) → double
Anteil der Blattbreite, den der QR am Drucker einnimmt (nativ, sonst Bildweg).
receiptSheet(ReceiptLayout layout, {int? charsPerLine, bool brandMark = false, QrModuleSize qrModuleSize = QrModuleSize.auto}) → ReceiptSheet