imin_printer

Flutter plugin for iMin built-in thermal printers. Supports text, image, barcode, QR code, and label printing on Android.

iMin built-in thermal printer Flutter plugin.

Resources

Platform Support

Android
Yes

SDK Version Compatibility

SDK Version Android Version Features
SDK 2.0 Android 13+ Full feature set including label printing, ESC/POS font control, advanced 2D codes, transaction printing
SDK 1.0 Android 11 and below Basic printing, images, barcodes, QR codes

Installation

dependencies:
  imin_printer: ^0.7.3
flutter pub get

Quick Start

import 'package:imin_printer/imin_printer.dart';
import 'package:imin_printer/enums.dart';
import 'package:imin_printer/imin_style.dart';

final iminPrinter = IminPrinter();

// Initialize
await iminPrinter.initPrinter();

// Check status
Map<String, dynamic> status = await iminPrinter.getPrinterStatus();
print('Printer status: ${status['msg']}');

// Print text
await iminPrinter.printText('Hello World',
  style: IminTextStyle(
    fontSize: 28,
    fontStyle: IminFontStyle.bold,
    align: IminPrintAlign.center,
  ),
);

// Print QR code
await iminPrinter.printQrCode('https://www.imin.sg',
  qrCodeStyle: IminQrCodeStyle(
    qrSize: 6,
    align: IminPrintAlign.center,
  ),
);

// Cut paper (devices with cutter only)
await iminPrinter.partialCut();

Key Features

  • Text printing with custom fonts, styles, alignment
  • Image printing (URL and byte array)
  • Barcode printing (UPC, EAN, Code128, etc.)
  • QR code and double QR code printing
  • Advanced 2D codes: PDF417, DataMatrix, Aztec, MaxiCode [2.0]
  • ESC/POS font control (bold, italic, underline, multiple size) [2.0]
  • Label printing with canvas-based layout [2.0]
  • Transaction printing (buffer management) [2.0]
  • Cash drawer control
  • Paper cutting (on devices with cutter hardware)

Error Handling

try {
  Map<String, dynamic> status = await iminPrinter.getPrinterStatus();
  if (status['code'] != '0') {
    throw Exception('Printer error: ${status['msg']}');
  }
  await iminPrinter.printText('Hello World');
} catch (e) {
  print('Print error: $e');
}

Documentation

For complete API reference, examples, and device compatibility details:

https://iminsoftware.github.io/imin_printer/

License

This project is licensed under the terms specified in the LICENSE file.