printWithWidgets static method

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

Implementation

static Future<void> printWithWidgets({
  required List<Widget> widgets,
  BuildContext? context,
  required CupStickerSize size,
  int? widthOffsetMm,
  double? paddingMm,
  String? deviceId,
  PrinterConnectionType? connectionType,
}) 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 model = LabelModel(
    images: images,
    labelPerRow: LabelPerRow.single.copyWith(
      width: widthMm,
      height: size.heightMm.toInt(),
      x: 0,
      y: 0,
    ),
  );

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