getPaperFromReceipt static method

Future<PrintPaper> getPaperFromReceipt(
  1. KasseneckReceipt receipt,
  2. KeckPaperSize paperSize, {
  3. QrPrintMode qrMode = QrPrintMode.imageRaster,
  4. QrModulGroesse qrGroesse = QrModulGroesse.auto,
  5. bool marke = false,
})

Setzt receipt als Beleg und gibt das fertige Papier zurueck -- die eine Stelle, an der PrintPaper fuer einen Beleg entsteht.

Der Rueckgabewert traegt neben bytes und myPosPaper auch PrintPaper.qrFehler; dieser Weg ruehrt letzterQrFehler nicht an und ist damit frei von globalem Zustand.

logo muss fuer paperSize gerastert sein (ladeDruckLogo(url, stufe, paperSize)): ein DruckLogo fuer eine andere Papierbreite laesst den Druck mit ArgumentError abbrechen, bevor ein Byte entsteht.

Implementation

static Future<PrintPaper> getPaperFromReceipt(
  KasseneckReceipt receipt,
  KeckPaperSize paperSize, {
  QrPrintMode qrMode = QrPrintMode.imageRaster,
  QrModulGroesse qrGroesse = QrModulGroesse.auto,
  DruckLogo? logo,
  bool marke = false,
}) async {
  final PrintPaper paper =
      PrintPaper(paperSize: paperSize, profile: KeckPrinterService.profile ?? CapabilityProfile());
  final BelegLayout? layout = receipt.layout;
  if (layout != null && receipt.layoutIstVollstaendig) {
    // [logo] und [marke] gelten nur fuer das Blatt; der Altweg kennt sein
    // eigenes Logo (`receipt.logo`) und Branding (`showKreiseckLogo`).
    await paper.setBelegBlatt(layout, logo: logo, marke: marke, qrMode: qrMode, qrGroesse: qrGroesse);
  } else {
    await paper.setKeckReceipt(receipt, qrMode: qrMode, qrGroesse: qrGroesse);
  }
  return paper;
}