printWithWidgets static method

Future<void> printWithWidgets({
  1. required List<Widget> widgets,
  2. BuildContext? context,
  3. required CupStickerSize size,
  4. int? widthOffsetMm,
  5. double? paddingMm,
})

Implementation

static Future<void> printWithWidgets({
  required List<Widget> widgets,
  BuildContext? context,
  required CupStickerSize size,
  int? widthOffsetMm,
  double? paddingMm,
}) async {
  final images = <Uint8List>[];

  for (final widget in widgets) {
    final bytes = await LabelFromWidget.captureFromWidget(
      widget,
      context: context,
    );

    final resized = await resizeImage(
      imageBytes: bytes,
      size: size,
      paddingMm: paddingMm,
    );

    images.add(resized);
  }

  final widthMm = size.widthMm.toInt() + (widthOffsetMm ?? 0);
  final heightMm = size.heightMm.toInt();

  final model = LabelModel(
    images: images,
    labelPerRow: LabelPerRow.single.copyWith(
      width: widthMm,
      height: heightMm,
      x: 0,
      y: 0,
    ),
  );

  await PrinterLabel.printLabel(
    barcodeImageModel: model,
  );
}