SunmiQrcodeStyle constructor

SunmiQrcodeStyle({
  1. int qrcodeSize = 4,
  2. SunmiQrcodeLevel errorLevel = SunmiQrcodeLevel.LEVEL_L,
  3. SunmiPrintAlign align = SunmiPrintAlign.CENTER,
})

Factory constructor to create a SunmiQrcodeStyle object with default values and optional customizations.

This method validates the QR code size to ensure it is within a valid range (between 1 and 16). It also allows the user to specify custom error correction levels and alignment options.

qrcodeSize defaults to 4, but can be adjusted between 1 and 16. errorLevel defaults to SunmiQrcodeLevel.LEVEL_L. align defaults to SunmiPrintAlign.CENTER.

Implementation

factory SunmiQrcodeStyle({
  int qrcodeSize = 4,
  SunmiQrcodeLevel errorLevel = SunmiQrcodeLevel.LEVEL_L,
  SunmiPrintAlign align = SunmiPrintAlign.CENTER,
}) {
  // Validate that the qrcodeSize is between 1 and 16.
  if (qrcodeSize < 1 || qrcodeSize > 16) {
    throw ArgumentError(
      'Invalid qrcodeSize: $qrcodeSize. Must be between 1 and 16.',
    );
  }

  // Return a new instance of SunmiQrcodeStyle with the provided or default values.
  return SunmiQrcodeStyle._internal(
    qrcodeSize: qrcodeSize,
    errorLevel: errorLevel,
    align: align,
  );
}