startPrint static method

Future<bool> startPrint({
  1. required Uint8List data,
  2. required String macAddress,
  3. required String printerName,
  4. required PrinterType printerType,
  5. required int width,
  6. int printingTimes = 1,
  7. int timeout = 120,
  8. int? feed,
  9. Future<void> onPrinting(
    1. PrintingStatus result
    )?,
})

Implementation

static Future<bool> startPrint(
    {required Uint8List data,
    required String macAddress,
    required String printerName,
    required PrinterType printerType,
    required int width,
    int printingTimes = 1,
    int timeout = 120,
    int? feed,
    Future<void> Function(PrintingStatus result)? onPrinting}) async {
  try {
    log("printing times:  $printingTimes ");
    for (var i = 0; i < printingTimes; i++) {
      dynamic result =
          await platform.invokeMethod('printImage', <String, dynamic>{
        'bytes': data,
        'macAddress': macAddress,
        'feed': feed ?? 2,
        'name': printerName,
        'printerType': printerType.name,
        'width': width
      }).timeout(Duration(seconds: timeout));
      _parseResult(result: result, onPrinting: onPrinting);
      await Future.delayed(const Duration(seconds: 2));
    }

    if (onPrinting != null) {
      await onPrinting(PrintingStatus.success);
    }
    return true;
  } on PlatformException catch (e) {
    log("Printing PlatformException: ${e.toString()}");
    if (onPrinting != null) {
      await onPrinting(PrintingStatus.platformException);
    }
    return false;
  } on Exception catch (e) {
    log("Printing Exception: ${e.toString()}");
    if (onPrinting != null) {
      await onPrinting(PrintingStatus.exception);
    }
    return false;
  }
}