Imin Printer

GitHub stars

A Flutter package for easy integration with Imin POS devices. Supports advanced printer commands, LCD display management, and cash drawer operations for retail and POS apps.

Note: After version 0.7.0, this package use IminPrinterLibrary SDK V2.0.0.17, which may causing unexpected behavior than older package version since I don't have access to test on Imin Devices.

Support

  • x Android

Tested On

  • Imin D1
  • Imin D4 Pro
  • Imin M2-202
  • Imin M2 Pro
  • Swift 2

Installation

flutter pub add another_imin_printer

What this package do

All printer related command available:

  • x Initialize Printer
  • x Set print size
  • x Get Printer Status
  • x Get model name
  • x Get brand name
  • x Print raw bytes (Uint8List)
  • x Print text
  • x Print 2 Column text
  • x Print Bitmap (Uint8List)
  • x Print Bitmap base64 (String)
  • x Set Style
  • x Partial cut
  • x Full cut

Tested on: Imin D1

  • x Initialize LCD Manager
  • x Send bitmap base 64 to LCD Screen
  • x Clear LCD Screen

Tested on: Imin D4 Pro

  • x Open cash drawer

You can combine this package with presentation_display to use customer display on some Imin device

Example

Instance

IminPrinter iminPrinter = IminPrinter();

Init Printer

Use init before accessing other functionality

iminPrinter.initPrinter(printSizeImin: PrintSizeImin.mm58);
iminPrinter.printText(
  'Sample Text', 
  printStyle: const PrintStyle(textAlign: PrintStyleAlign.center),
); // Print text on Center
iminPrinter.print2ColumnsText(['Left Text', 'Right Text']);
iminPrinter.printBytes(Uint8List.fromList([0x1B, 0x40, 0x0A])); // Print raw bytes

Open Cash Drawer

iminPrinter.openCashDrawer();

Contributing

Contributions are welcome! Please open issues or submit pull requests for any improvements or bug fixes. Make sure to follow the existing code style and include tests where appropriate.

License

This project is licensed under the MIT License. See the LICENSE file for details.