setPrintArea method

List<int> setPrintArea()

GS L + GS W: linker Rand auf 0, Druckbereich auf die Breite des Blatts -- Zeichen je Zeile in Font A mal 12 Punkte (32 -> 384, 48 -> 576).

Warum das noetig ist. ESC a 1 mittelt nicht im Blatt, sondern im Druckbereich des Geraets. Steht das Blatt auf 58 mm (32 Zeichen) und haengt ein 80-mm-Drucker daran, setzt er den Text in die linken 384 Punkte, mittelt QR, Logo und Marke aber in seinen 576 -- am Papier sitzt dann alles Bildhafte gegenueber dem Text nach rechts gerueckt. Am Geraet nachgestellt und bestaetigt: mit diesen acht Bytes im Vorspann steht beides buendig.

Bewusst nicht _paperSize.width (372/558, das Erbe fuer die Spaltenrechnung), sondern das Raster, in dem der Text wirklich steht.

Zwilling von escPosSetDruckbereich im npm-Paket (0.26.0).

Implementation

List<int> setPrintArea() {
  final int punkte = _getMaxCharsPerLine(PosFontType.fontA) * 12;
  return [
    ...cLeftMargin.codeUnits, 0, 0,
    ...cPrintArea.codeUnits, punkte & 0xff, punkte >> 8,
  ];
}