printing library

Oeffentliches Barrel fuer den vendierten ESC/POS-Druck-Stack.

Integratoren, die selbst Bytes bauen wollen, importieren dieses Barrel und senden das Ergebnis via KeckPrinterService.printRawBytes:

import 'package:kasseneck_api/printing.dart';

final gen = EscPosGenerator(EscPaperSize.mm80, CapabilityProfile());
final bytes = <int>[
  ...gen.text('Hallo', styles: const PosStyles(align: PosAlign.center)),
  ...gen.cut(),
];
await KeckPrinterService.printRawBytes(bytes);

Classes

BluetoothTransport
PrinterTransport ueber einen Bluetooth-Drucker.
CapabilityProfile
Minimales Ersatz-Profil fuer den ESC/POS-Generator. Statt der 66-KB- capabilities.json nur die tatsaechlich genutzten Codepages.
CustomPrintJob
Sammelt mehrere Custom-Druckbefehle und baut daraus EINEN Byte-Strom, der mit KeckPrinterService.printJob in einem einzigen Sendevorgang gedruckt wird (fuer Bluetooth deutlich robuster als viele Einzel-Sends).
Firmenlogo fuer den Druck: Stufe, Pixelmass des Originals und das fertige Rasterbild aus logoRaster (Zwilling von DruckLogo im npm-Paket).
EscPaperSize
EscPosGenerator
KeckPrinter
Einheitliche Druck-Fassade ueber einer PrinterTransport.
KeckPrinterService
KeckPrintResult
Ergebnis eines direkten Druckvorgangs (z. B. KeckPrinterService.printRawBytesWifi).
LogoRaster
PosColumn
Column contains text, styles and width (an integer in 1..12 range) containsChinese not used if the text passed as textEncoded
PosStyles
Text styles
PosTextSize
PrinterTransport
Transport-Abstraktion fuer den ESC/POS-Druck.
PrintPaper
QRCode
QRCorrection
QrGroesse
Ergebnis der Modulgroessen-Rechnung.
QrMass
Die Rechenregel fuer die Modulgroesse des Beleg-QR — rein, ohne Drucker.
QRSize
RasterImage
Einfaches RGBA-Bild (4 Bytes/Pixel: R,G,B,A) als Ersatz fuer image.Image. Bewusst minimal — nur was der Druckpfad braucht.
WifiTransport
PrinterTransport ueber einen WLAN-/Netzwerkdrucker (Roh-TCP, Port 9100).

Enums

BarcodeHri
Position der HRI-Klartextzeichen (Human Readable Interpretation) relativ zum Barcode. Der Wert geht als n in GS H n.
BarcodeType
1D-Barcode-Symbologien fuer GS k (Form 2). Der Wert m ist der ESC/POS-Selektor (65..73) im Befehl GS k m n <payload>.
KeckPaperSize
LogoStufe
PosAlign
PosCutMode
PosDrawer
PosFontType
PosImageFn
bitImageRaster: GS v 0 (obsolete); graphics: GS ( L
QrModulGroesse
Wie gross die Module des Beleg-QR werden duerfen — ein Deckel, keine Vorgabe: gedruckt wird immer die groesste Groesse, die noch aufs Papier passt, hoechstens aber diese hier.
QrPrintMode
Druckmodus für den Beleg-QR-Code.

Extensions

KasseQrModusDruck on KasseQrModus
Der eingestellte QR-Modus des Geräts als Druckbefehl.

Constants

logoPixelMax → const int
Obergrenze der Rohpixel, die logoRaster noch anfasst (Zwilling von LOGO_PIXEL_MAX im Druck-Kit der Browser-Kasse). Die Flaechenmittel- Schleife in logoRaster laeuft synchron ueber pxBreite x pxHoehe -- bei einem stark komprimierten Logo unter der Upload-Grenze (1 MB), das trotzdem auf z. B. 6000x6000 Rohpixel entpackt, blockiert das den UI-Isolate weit laenger als die Drei-Sekunden-Hausregel; Future.timeout in ladeDruckLogo kann laufenden synchronen Code nicht unterbrechen. Eigene, pure Funktion, damit die Grenze ohne echtes Bild testbar ist.

Functions

Laedt das Logo unter url und rastert es in die Groesse, die das Blatt stufe und papier geben (logoMass/logoRaster) -- null ohne Adresse oder bei jedem Fehler (Netz, Decode, Pixelmass). pixel ersetzt den Standardweg ueber LogoService/decodePng (Tests, andere Quellen).
logoMass(int zeichen) LogoMass
Ins Kaestchen der Stufe eingepasst, nie hochgerechnet (1 Bildpixel hoechstens 1 Druckpunkt).
logoPixelZulaessig(int breite, int hoehe) bool
true, wenn logoRaster das Bild noch anfassen darf.
logoRasterMass(LogoMass mass, int zeichen) → ({int breite, int hoehe})