From d15ef849e7c728a8c3cb77694cbaa5c795cce0b0 Mon Sep 17 00:00:00 2001 From: "song.chao" Date: Mon, 15 Jan 2024 17:13:18 +0800 Subject: [PATCH 01/24] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=89=93=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../imin_printer/IminPrinterPlugin.java | 80 ++++++++++++++++++- example/android/app/build.gradle | 2 +- example/lib/pages/v1/home.dart | 4 +- example/lib/pages/v2/home.dart | 32 +++++++- lib/imin_printer.dart | 5 +- lib/imin_printer_method_channel.dart | 50 +++++++++--- lib/imin_printer_platform_interface.dart | 5 +- test/imin_printer_test.dart | 4 +- 8 files changed, 158 insertions(+), 24 deletions(-) diff --git a/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java b/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java index cfaf341..1f819d2 100644 --- a/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java +++ b/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java @@ -34,24 +34,39 @@ import io.flutter.plugin.common.MethodChannel.MethodCallHandler; import io.flutter.plugin.common.MethodChannel.Result; +import io.flutter.plugin.common.EventChannel; +import io.flutter.plugin.common.EventChannel.EventSink; +import io.flutter.plugin.common.EventChannel.StreamHandler; + +import android.content.Intent; +import android.content.IntentFilter; +import android.content.BroadcastReceiver; + /** * IminPrinterPlugin */ -public class IminPrinterPlugin implements FlutterPlugin, MethodCallHandler { +public class IminPrinterPlugin implements FlutterPlugin, MethodCallHandler, StreamHandler { /// The MethodChannel that will the communication between Flutter and native Android /// /// This local reference serves to register the plugin with the Flutter Engine and unregister it /// when the Flutter Engine is detached from the Activity private MethodChannel channel; private IminPrintUtils iminPrintUtils; + private EventChannel eventChannel; private Context _context; private IminPrintUtils.PrintConnectType connectType = IminPrintUtils.PrintConnectType.USB; + private EventSink eventSink; + private static final String ACTION_PRITER_STATUS_CHANGE = "com.imin.printerservice.PRITER_STATUS_CHANGE"; + private static final String ACTION_POGOPIN_STATUS_CHANGE = "com.imin.printerservice.PRITER_CONNECT_STATUS_CHANGE"; + private static final String ACTION_PRITER_STATUS = "status"; + private BroadcastReceiver chargingStateChangeReceiver; @Override public void onAttachedToEngine(@NonNull FlutterPluginBinding flutterPluginBinding) { channel = new MethodChannel(flutterPluginBinding.getBinaryMessenger(), "imin_printer"); _context = flutterPluginBinding.getApplicationContext(); + eventChannel = new EventChannel(flutterPluginBinding.getBinaryMessenger(), "imin_printer_event"); if (Build.MODEL.equals("W27_Pro") || Build.MODEL.equals("I23D01") || Build.MODEL.equals("I23M01") || Build.MODEL.equals("I23M02")) { //初始化 2.0 的 SDK。 @@ -67,6 +82,7 @@ public void onAttachedToEngine(@NonNull FlutterPluginBinding flutterPluginBindin } iminPrintUtils.resetDevice(); } + eventChannel.setStreamHandler(this); channel.setMethodCallHandler(this); } @@ -395,6 +411,8 @@ public void run() { int qrSize = call.argument("qrSize"); if (iminPrintUtils != null) { iminPrintUtils.setQrCodeSize(qrSize); + } else { + PrinterHelper.getInstance().setQrCodeSize(qrSize); } result.success(true); break; @@ -402,6 +420,8 @@ public void run() { int margin = call.argument("margin"); if (iminPrintUtils != null) { iminPrintUtils.setLeftMargin(margin); + } else { + PrinterHelper.getInstance().setLeftMargin(margin); } result.success(true); break; @@ -409,6 +429,8 @@ public void run() { int level = call.argument("level"); if (iminPrintUtils != null) { iminPrintUtils.setQrCodeErrorCorrectionLev(level); + } else { + PrinterHelper.getInstance().setQrCodeErrorCorrectionLev(level); } result.success(true); break; @@ -418,10 +440,20 @@ public void run() { int alignmentMode = call.argument("alignment"); if (iminPrintUtils != null) { iminPrintUtils.printQrCode(qrStr, alignmentMode); + } else { + if (call.argument("qrSize") != null && call.argument("level") != null) { + int qrFullSize = call.argument("qrSize"); + int qrFullLevel = call.argument("level"); + PrinterHelper.getInstance().printQRCodeWithFull(qrStr, qrFullSize, qrFullLevel, alignmentMode, null); + } else { + PrinterHelper.getInstance().printQrCodeWithAlign(qrStr, alignmentMode, null); + } } } else { if (iminPrintUtils != null) { iminPrintUtils.printQrCode(qrStr); + } else { + PrinterHelper.getInstance().printQrCode(qrStr, null); } } result.success(true); @@ -473,8 +505,7 @@ public void run() { int barCodeFullPosition = call.argument("position"); int barCodeFullHeight = call.argument("height"); int barCodeFullWidth = call.argument("width"); - Log.d("TAG", "printBarCode: barCodeContent: " + barCodeContent + " barCodeType:" + barCodeType + " barCodeAlign:" + barCodeAlign + "position:" + barCodeFullPosition + "barCodeHeight:" + barCodeFullHeight + "barCodeWidth:" + barCodeFullWidth); - PrinterHelper.getInstance().printBarCodeWithFull(barCodeContent, barCodeType, barCodeAlign, barCodeFullPosition, barCodeFullHeight, barCodeFullWidth, null); + PrinterHelper.getInstance().printBarCodeWithFull(barCodeContent, barCodeType, barCodeFullWidth, barCodeFullHeight, barCodeAlign, barCodeFullPosition, null); } else { PrinterHelper.getInstance().printBarCodeWithAlign(barCodeContent, barCodeType, barCodeAlign, null); } @@ -558,6 +589,8 @@ public void run() { int doubleQRSize = call.argument("size"); if (iminPrintUtils != null) { iminPrintUtils.setDoubleQRSize(doubleQRSize); + } else { + PrinterHelper.getInstance().setDoubleQRSize(doubleQRSize); } result.success(true); break; @@ -565,6 +598,8 @@ public void run() { int doubleQR1Level = call.argument("level"); if (iminPrintUtils != null) { iminPrintUtils.setDoubleQR1Level(doubleQR1Level); + } else { + PrinterHelper.getInstance().setDoubleQR1Level(doubleQR1Level); } result.success(true); break; @@ -572,6 +607,8 @@ public void run() { int doubleQR2Level = call.argument("level"); if (iminPrintUtils != null) { iminPrintUtils.setDoubleQR2Level(doubleQR2Level); + } else { + PrinterHelper.getInstance().setDoubleQR2Level(doubleQR2Level); } result.success(true); break; @@ -579,6 +616,8 @@ public void run() { int doubleQR1MarginLeft = call.argument("leftMargin"); if (iminPrintUtils != null) { iminPrintUtils.setDoubleQR1MarginLeft(doubleQR1MarginLeft); + } else { + PrinterHelper.getInstance().setDoubleQR1MarginLeft(doubleQR1MarginLeft); } result.success(true); break; @@ -586,6 +625,8 @@ public void run() { int doubleQR2MarginLeft = call.argument("leftMargin"); if (iminPrintUtils != null) { iminPrintUtils.setDoubleQR2MarginLeft(doubleQR2MarginLeft); + } else { + PrinterHelper.getInstance().setDoubleQR2MarginLeft(doubleQR2MarginLeft); } result.success(true); break; @@ -1008,14 +1049,47 @@ public void onPrintResult(int code, String msg) throws RemoteException { } result.success(true); break; + case "getPrinterIsUpdateStatus": + if (iminPrintUtils == null) { + // result.success(PrinterHelper.getInstance().getPrinterIsUpdateStatus(null)); + } + result.success(true); default: result.notImplemented(); break; } } + private BroadcastReceiver createChargingStateChangeReceiver(EventChannel.EventSink events) { + return new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + int status = intent.getIntExtra(ACTION_PRITER_STATUS, -1); + events.success(status); + } + }; + } + @Override public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) { channel.setMethodCallHandler(null); } + + @Override + public void onListen(Object argument, EventChannel.EventSink events) { + eventSink = events; + chargingStateChangeReceiver = createChargingStateChangeReceiver(eventSink); + IntentFilter intentFilter = new IntentFilter(); + intentFilter.addAction(ACTION_PRITER_STATUS_CHANGE); + intentFilter.addAction(ACTION_POGOPIN_STATUS_CHANGE); + _context.registerReceiver(chargingStateChangeReceiver, intentFilter); + } + + @Override + public void onCancel(Object argument) { + _context.unregisterReceiver(chargingStateChangeReceiver); + eventSink = null; + chargingStateChangeReceiver = null; + } + } diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index 8327540..6b4b984 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -40,7 +40,7 @@ android { applicationId "com.imin.printer.imin_printer_example" // You can update the following values to match your application needs. // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. - minSdkVersion flutter.minSdkVersion + minSdkVersion 21 targetSdkVersion flutter.targetSdkVersion versionCode flutterVersionCode.toInteger() versionName flutterVersionName diff --git a/example/lib/pages/v1/home.dart b/example/lib/pages/v1/home.dart index 758910a..c0fa265 100644 --- a/example/lib/pages/v1/home.dart +++ b/example/lib/pages/v1/home.dart @@ -65,9 +65,9 @@ class _HomeState extends State { }), ElevatedButton( onPressed: () async { - String? state = await iminPrinter.getPrinterStatus(); + Map? state = await iminPrinter.getPrinterStatus(); Fluttertoast.showToast( - msg: state ?? '', + msg: state['msg'], toastLength: Toast.LENGTH_LONG, gravity: ToastGravity.BOTTOM, // 消息框弹出的位置 // timeInSecForIos: 1, // 消息框持续的时间(目前的版本只有ios有效) diff --git a/example/lib/pages/v2/home.dart b/example/lib/pages/v2/home.dart index eb090ee..441ea23 100644 --- a/example/lib/pages/v2/home.dart +++ b/example/lib/pages/v2/home.dart @@ -24,6 +24,9 @@ class _NewHomeState extends State { void initState() { super.initState(); // getMediaFilePermission(); + iminPrinter.listenerEvent((data){ + debugPrint('listenerEvent: $data'); + }); } /// 获取媒体文件读写权限 @@ -31,6 +34,7 @@ class _NewHomeState extends State { Map statuses = await [Permission.manageExternalStorage].request(); if (!mounted) return; + // debugPrint('initState: ${ await iminPrinter.listenerEvent()}'); //granted 通过,denied 被拒绝,permanentlyDenied 拒绝且不在提示 if (statuses[Permission.manageExternalStorage]!.isGranted) { setState(() { @@ -71,9 +75,9 @@ class _NewHomeState extends State { child: const Text('init Printer')), OutlinedButton( onPressed: () async { - String? state = await iminPrinter.getPrinterStatus(); + Map state = await iminPrinter.getPrinterStatus(); Fluttertoast.showToast( - msg: state ?? '', + msg: state['msg'], toastLength: Toast.LENGTH_LONG, gravity: ToastGravity.BOTTOM, // 消息框弹出的位置 // timeInSecForIos: 1, // 消息框持续的时间(目前的版本只有ios有效) @@ -410,6 +414,30 @@ class _NewHomeState extends State { ]); }, child: const Text('print ColumnsString'), + ), + OutlinedButton( + onPressed: () async { + await iminPrinter.printQrCode('https://www.imin.sg', + qrCodeStyle: IminQrCodeStyle( + errorCorrectionLevel: + IminQrcodeCorrectionLevel.levelH, + qrSize: 4, + align: IminPrintAlign.center)); + }, + child: const Text('print Qrcode'), + ), + OutlinedButton( + onPressed: () async { + await iminPrinter.printDoubleQR( + qrCode1: IminDoubleQRCodeStyle( + text: 'www.imin.sg', + ), + qrCode2: IminDoubleQRCodeStyle( + text: 'www.google.com', + ), + doubleQRSize: 5); + }, + child: const Text('print DoubleQR'), ) ], ), diff --git a/lib/imin_printer.dart b/lib/imin_printer.dart index 86fdaff..9aa9dc2 100644 --- a/lib/imin_printer.dart +++ b/lib/imin_printer.dart @@ -9,6 +9,9 @@ import 'package:logger/logger.dart'; var logger = Logger(); class IminPrinter { + Future listenerEvent(dynamic onEvent, {dynamic onError}) { + return IminPrinterPlatform.instance.listenerEvent(onEvent, onError: onEvent ); + } /// Get what version of sdk is the current device using /// /// {@tool snippet} @@ -41,7 +44,7 @@ class IminPrinter { /// iminPrinter.getPrinterStatus() /// ``` /// {@end-tool} - Future getPrinterStatus() { + Future> getPrinterStatus() { return IminPrinterPlatform.instance.getPrinterStatus(); } diff --git a/lib/imin_printer_method_channel.dart b/lib/imin_printer_method_channel.dart index 44430e6..b5e1732 100644 --- a/lib/imin_printer_method_channel.dart +++ b/lib/imin_printer_method_channel.dart @@ -1,5 +1,5 @@ +import 'dart:async'; import 'package:flutter/foundation.dart'; -// import 'package:flutter/rendering.dart'; import 'package:flutter/services.dart'; import 'dart:convert'; import 'enums.dart'; @@ -16,6 +16,13 @@ class MethodChannelIminPrinter extends IminPrinterPlatform { @visibleForTesting final methodChannel = const MethodChannel('imin_printer'); + final eventChannel = const EventChannel('imin_printer_event'); + + @override + Future listenerEvent(dynamic onEvent, {dynamic onError}) async { + eventChannel.receiveBroadcastStream().listen(onEvent,onError: onError); + } + @override Future getUseSdkVersion() async { return await methodChannel.invokeMethod('sdkVersion'); @@ -28,10 +35,14 @@ class MethodChannelIminPrinter extends IminPrinterPlatform { } @override - Future getPrinterStatus() async { + Future> getPrinterStatus() async { final code = await methodChannel.invokeMethod('getPrinterStatus'); logger.d('code $code'); - return PrinterStatus.getValue(code ?? '-1'); + Map printerStatus = { + "code": code, + "msg": PrinterStatus.getValue(code ?? '-1') + }; + return printerStatus; } @override @@ -293,18 +304,31 @@ class MethodChannelIminPrinter extends IminPrinterPlatform { Future printQrCode(String data, {IminQrCodeStyle? qrCodeStyle}) async { Map arguments = {}; if (qrCodeStyle != null) { - if (qrCodeStyle.align != null) { + if (qrCodeStyle.align != null && + qrCodeStyle.qrSize != null && + qrCodeStyle.leftMargin != null && + qrCodeStyle.errorCorrectionLevel != null) { arguments.putIfAbsent("alignment", () => qrCodeStyle.align?.index); - } - if (qrCodeStyle.qrSize != null) { - await setQrCodeSize(qrCodeStyle.qrSize!); - } + arguments.putIfAbsent("qrSize", () => qrCodeStyle.qrSize!); + arguments.putIfAbsent( + "level", () => qrCodeStyle.errorCorrectionLevel?.level); + if (qrCodeStyle.leftMargin != null) { + await setLeftMargin(qrCodeStyle.leftMargin!); + } + } else { + if (qrCodeStyle.align != null) { + arguments.putIfAbsent("alignment", () => qrCodeStyle.align?.index); + } + if (qrCodeStyle.qrSize != null) { + await setQrCodeSize(qrCodeStyle.qrSize!); + } - if (qrCodeStyle.leftMargin != null) { - await setLeftMargin(qrCodeStyle.leftMargin!); - } - if (qrCodeStyle.errorCorrectionLevel != null) { - await setQrCodeErrorCorrectionLev(qrCodeStyle.errorCorrectionLevel!); + if (qrCodeStyle.leftMargin != null) { + await setLeftMargin(qrCodeStyle.leftMargin!); + } + if (qrCodeStyle.errorCorrectionLevel != null) { + await setQrCodeErrorCorrectionLev(qrCodeStyle.errorCorrectionLevel!); + } } } arguments.putIfAbsent("data", () => data); diff --git a/lib/imin_printer_platform_interface.dart b/lib/imin_printer_platform_interface.dart index 3a9c2f4..b50a7c9 100644 --- a/lib/imin_printer_platform_interface.dart +++ b/lib/imin_printer_platform_interface.dart @@ -28,6 +28,9 @@ abstract class IminPrinterPlatform extends PlatformInterface { _instance = instance; } + Future listenerEvent(dynamic onEvent, {dynamic onError}) { + throw UnimplementedError('listenerEvent() has not been implemented.'); + } Future getUseSdkVersion() { throw UnimplementedError('getUseSdkVersion() has not been implemented.'); } @@ -36,7 +39,7 @@ abstract class IminPrinterPlatform extends PlatformInterface { throw UnimplementedError('initPrinter() has not been implemented.'); } - Future getPrinterStatus() { + Future> getPrinterStatus() { throw UnimplementedError('getPrinterStatus() has not been implemented.'); } diff --git a/test/imin_printer_test.dart b/test/imin_printer_test.dart index ed3009f..9b163b6 100644 --- a/test/imin_printer_test.dart +++ b/test/imin_printer_test.dart @@ -13,11 +13,13 @@ class MockIminPrinterPlatform with MockPlatformInterfaceMixin implements IminPrinterPlatform { @override + Future listenerEvent(dynamic onEvent, {dynamic onError}) => Future.value(); + @override Future getUseSdkVersion() => Future.value(true); @override Future initPrinter() => Future.value(true); @override - Future getPrinterStatus() => Future.value('-1'); + Future> getPrinterStatus() => Future.value({"code": 0, "msg": 'sdsd'}); @override Future setTextSize(int size) => Future.value(); @override From 664894686d6f04f3932674fa22896c0c52008c4b Mon Sep 17 00:00:00 2001 From: tanbotao Date: Tue, 16 Jan 2024 16:26:23 +0800 Subject: [PATCH 02/24] =?UTF-8?q?=E9=80=82=E9=85=8D=E4=BA=8B=E5=8A=A1?= =?UTF-8?q?=E6=89=93=E5=8D=B0api?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../imin_printer/IminPrinterPlugin.java | 47 ++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) diff --git a/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java b/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java index 1f819d2..b5362af 100644 --- a/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java +++ b/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java @@ -60,6 +60,7 @@ public class IminPrinterPlugin implements FlutterPlugin, MethodCallHandler, Stre private static final String ACTION_PRITER_STATUS_CHANGE = "com.imin.printerservice.PRITER_STATUS_CHANGE"; private static final String ACTION_POGOPIN_STATUS_CHANGE = "com.imin.printerservice.PRITER_CONNECT_STATUS_CHANGE"; private static final String ACTION_PRITER_STATUS = "status"; + private static final String TAG = "IminPrinterPlugin"; private BroadcastReceiver chargingStateChangeReceiver; @Override @@ -1051,9 +1052,53 @@ public void onPrintResult(int code, String msg) throws RemoteException { break; case "getPrinterIsUpdateStatus": if (iminPrintUtils == null) { - // result.success(PrinterHelper.getInstance().getPrinterIsUpdateStatus(null)); + result.success(PrinterHelper.getInstance().getPrinterIsUpdateStatus()); } result.success(true); + break; + + case "enterPrinterBuffer"://进入事务模式 + if (iminPrintUtils == null) { + PrinterHelper.getInstance().enterPrinterBuffer(true); + } + result.success(true); + break; + + case "commitPrinterBuffer"://提交事务打印 + if (iminPrintUtils == null) { + PrinterHelper.getInstance().commitPrinterBuffer(new INeoPrinterCallback() { + @Override + public void onRunResult(boolean isSuccess) throws RemoteException { + + } + + @Override + public void onReturnString(String result) throws RemoteException { + + } + + @Override + public void onRaiseException(int code, String msg) throws RemoteException { + + } + + @Override + public void onPrintResult(int code, String msg) throws RemoteException { + // code 0=事务打印成功, 2=事务模式开始发打印数据给打印机 , 其它=打印失败 + Log.d(TAG, "code " + code + " , msg= " + msg); + } + }); + } + result.success(true); + break; + + case "exitPrinterBuffer"://exit事务模式 + if (iminPrintUtils == null) { + PrinterHelper.getInstance().exitPrinterBuffer(true); + } + result.success(true); + break; + default: result.notImplemented(); break; From bf07f6925bf227b883957d5d229a2a636d6311f1 Mon Sep 17 00:00:00 2001 From: tanbotao Date: Tue, 16 Jan 2024 16:42:27 +0800 Subject: [PATCH 03/24] =?UTF-8?q?=E4=BA=8B=E5=8A=A1=E6=89=93=E5=8D=B0demo1?= =?UTF-8?q?=E3=80=812=E3=80=813?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../imin/printer/imin_printer/BytesUtils.java | 331 ++++++++++++++++++ .../imin_printer/IminPrinterPlugin.java | 17 + 2 files changed, 348 insertions(+) create mode 100644 android/src/main/java/com/imin/printer/imin_printer/BytesUtils.java diff --git a/android/src/main/java/com/imin/printer/imin_printer/BytesUtils.java b/android/src/main/java/com/imin/printer/imin_printer/BytesUtils.java new file mode 100644 index 0000000..916e8a6 --- /dev/null +++ b/android/src/main/java/com/imin/printer/imin_printer/BytesUtils.java @@ -0,0 +1,331 @@ +package com.imin.printer.imin_printer; + +public class BytesUtils { + /** + * 百度小票 (Baidu ticket for ESC cmd) + */ + public static byte[] getBaiduTestBytes() { + byte[] rv = new byte[]{ + 0x1b, 0x40, 0x1b, 0x4d, 0x00, 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x11, 0x1b, 0x45, 0x00, 0x1b, 0x47, 0x00, 0x1b, 0x61, 0x00, 0x1b, 0x45, 0x01, 0x1b, 0x47, 0x01, (byte) 0xb1, (byte) 0xbe + , (byte) 0xb5, (byte) 0xea, (byte) 0xc1, (byte) 0xf4, (byte) 0xb4, (byte) 0xe6, 0x0a, 0x1b, 0x4d, 0x00, 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x00, 0x1b, 0x45, 0x00, 0x1b, 0x47, 0x00, 0x1b, 0x61, 0x00, 0x2a, 0x2a, 0x2a + , 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a + , 0x2a, 0x0a + , 0x1b, 0x40, 0x1b, 0x4d, 0x00, 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x11, 0x1b, 0x45, 0x00, 0x1b, 0x47, 0x00, 0x1b, 0x61, 0x00, 0x1b, 0x45, 0x01, 0x1b, 0x47, 0x01, 0x1b, 0x61 + , 0x01, 0x23, 0x31, 0x35, 0x20, (byte) 0xb0, (byte) 0xd9, (byte) 0xb6, (byte) 0xc8, (byte) 0xcd, (byte) 0xe2, (byte) 0xc2, (byte) 0xf4, 0x0a, 0x5b, (byte) 0xbb, (byte) 0xf5, (byte) 0xb5, (byte) 0xbd, (byte) 0xb8, (byte) 0xb6, (byte) 0xbf, (byte) 0xee, 0x5d, 0x0a, 0x1b, 0x4d, 0x00 + , 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x00, 0x1b, 0x45, 0x00, 0x1b, 0x47, 0x00, 0x1b, 0x61, 0x00, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a + , 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x0a + , 0x1b, 0x40, 0x1b, 0x4d, 0x00, 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x01, 0x1b, 0x45, 0x00, 0x1b, 0x47, 0x00, 0x1b, 0x61, 0x00, (byte) 0xc6, (byte) 0xda, (byte) 0xcd, (byte) 0xfb, (byte) 0xcb, (byte) 0xcd, (byte) 0xb4, (byte) 0xef + , (byte) 0xca, (byte) 0xb1, (byte) 0xbc, (byte) 0xe4, (byte) 0xa3, (byte) 0xba, (byte) 0xc1, (byte) 0xa2, (byte) 0xbc, (byte) 0xb4, (byte) 0xc5, (byte) 0xe4, (byte) 0xcb, (byte) 0xcd, 0x0a, (byte) 0xb6, (byte) 0xa9, (byte) 0xb5, (byte) 0xa5, (byte) 0xb1, (byte) 0xb8, (byte) 0xd7, (byte) 0xa2, (byte) 0xa3, (byte) 0xba, (byte) 0xc7, (byte) 0xeb, (byte) 0xcb + , (byte) 0xcd, (byte) 0xb5, (byte) 0xbd, (byte) 0xbf, (byte) 0xfc, (byte) 0xbf, (byte) 0xc6, (byte) 0xce, (byte) 0xf7, (byte) 0xc3, (byte) 0xc5, 0x2c, (byte) 0xb2, (byte) 0xbb, (byte) 0xd2, (byte) 0xaa, (byte) 0xc0, (byte) 0xb1, 0x0a, (byte) 0xb7, (byte) 0xa2, (byte) 0xc6, (byte) 0xb1, (byte) 0xd0, (byte) 0xc5, (byte) 0xcf, (byte) 0xa2, (byte) 0xa3 + , (byte) 0xba, (byte) 0xb0, (byte) 0xd9, (byte) 0xb6, (byte) 0xc8, (byte) 0xcd, (byte) 0xe2, (byte) 0xc2, (byte) 0xf4, (byte) 0xb7, (byte) 0xa2, (byte) 0xc6, (byte) 0xb1, 0x0a, 0x1b, 0x4d, 0x00, 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x00, 0x1b, 0x45, 0x00, 0x1b, 0x47 + , 0x00, 0x1b, 0x61, 0x00, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a + , 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x0a + , 0x1b, 0x40, 0x1b, 0x4d, 0x00, 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x00, 0x1b, 0x45, 0x00, 0x1b, 0x47, 0x00, 0x1b, 0x61, 0x00, (byte) 0xb6, (byte) 0xa9, (byte) 0xb5, (byte) 0xa5, (byte) 0xb1, (byte) 0xe0, (byte) 0xba, (byte) 0xc5 + , (byte) 0xa3, (byte) 0xba, 0x31, 0x34, 0x31, 0x38, 0x37, 0x31, 0x38, 0x36, 0x39, 0x31, 0x31, 0x36, 0x38, 0x39, 0x0a, (byte) 0xcf, (byte) 0xc2, (byte) 0xb5, (byte) 0xa5, (byte) 0xca, (byte) 0xb1, (byte) 0xbc, (byte) 0xe4, (byte) 0xa3, (byte) 0xba, 0x32 + , 0x30, 0x31, 0x34, 0x2d, 0x31, 0x32, 0x2d, 0x31, 0x36, 0x20, 0x31, 0x36, 0x3a, 0x33, 0x31, 0x0a, 0x1b, 0x4d, 0x00, 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x00, 0x1b, 0x45, 0x00 + , 0x1b, 0x47, 0x00, 0x1b, 0x61, 0x00, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a + , 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x0a + , 0x1b, 0x40, 0x1b, 0x4d, 0x00, 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x01, 0x1b, 0x45, 0x00, 0x1b, 0x47, 0x00, 0x1b, 0x61, 0x00, (byte) 0xb2, (byte) 0xcb, (byte) 0xc6, (byte) 0xb7, (byte) 0xc3, (byte) 0xfb, (byte) 0xb3, (byte) 0xc6 + , 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, (byte) 0xca, (byte) 0xfd, (byte) 0xc1, (byte) 0xbf, 0x20, 0x20, 0x20, 0x20, 0x20, (byte) 0xbd, (byte) 0xf0, (byte) 0xb6, (byte) 0xee, 0x0a, 0x1b, 0x4d, 0x00, 0x1b, 0x61 + , 0x00, 0x1d, 0x21, 0x00, 0x1b, 0x45, 0x00, 0x1b, 0x47, 0x00, 0x1b, 0x61, 0x00, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d + , 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x1b, 0x4d, 0x00, 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x01, 0x1b + , 0x45, 0x00, 0x1b, 0x47, 0x00, 0x1b, 0x61, 0x00, (byte) 0xcf, (byte) 0xe3, (byte) 0xc0, (byte) 0xb1, (byte) 0xc3, (byte) 0xe6, (byte) 0xcc, (byte) 0xd7, (byte) 0xb2, (byte) 0xcd, 0x1b, 0x24, (byte) 0xf2, 0x00, 0x31, 0x1b, 0x24, 0x25, 0x01, (byte) 0xa3 + , (byte) 0xa4, 0x34, 0x30, 0x2e, 0x30, 0x30, 0x0a, 0x1b, 0x4d, 0x00, 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x00, 0x1b, 0x45, 0x00, 0x1b, 0x47, 0x00, 0x1b, 0x61, 0x00, 0x1b, 0x4d, 0x00 + , 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x00, 0x1b, 0x45, 0x00, 0x1b, 0x47, 0x00, 0x1b, 0x61, 0x00, 0x1b, 0x4d, 0x00, 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x01, 0x1b, 0x45, 0x00, 0x1b + , 0x47, 0x00, 0x1b, 0x61, 0x00, (byte) 0xcb, (byte) 0xd8, (byte) 0xca, (byte) 0xb3, (byte) 0xcc, (byte) 0xec, (byte) 0xcf, (byte) 0xc2, (byte) 0xba, (byte) 0xba, (byte) 0xb1, (byte) 0xa4, 0x1b, 0x24, (byte) 0xf2, 0x00, 0x31, 0x1b, 0x24, 0x25, 0x01, (byte) 0xa3, (byte) 0xa4 + , 0x33, 0x38, 0x2e, 0x30, 0x30, 0x0a, 0x1b, 0x4d, 0x00, 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x00, 0x1b, 0x45, 0x00, 0x1b, 0x47, 0x00, 0x1b, 0x61, 0x00, 0x1b, 0x4d, 0x00, 0x1b + , 0x61, 0x00, 0x1d, 0x21, 0x00, 0x1b, 0x45, 0x00, 0x1b, 0x47, 0x00, 0x1b, 0x61, 0x00 + , 0x1b, 0x40, 0x1b, 0x4d, 0x00, 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x00, 0x1b, 0x45, 0x00, 0x1b, 0x47, 0x00, 0x1b, 0x61, 0x00, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d + , 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a + , 0x1b, 0x40, 0x1b, 0x4d, 0x00, 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x00, 0x1b, 0x45, 0x00, 0x1b, 0x47, 0x00, 0x1b, 0x61, 0x00, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a + , 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x0a, 0x1b, 0x4d, 0x00 + , 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x01, 0x1b, 0x45, 0x00, 0x1b, 0x47, 0x00, 0x1b, 0x61, 0x00, (byte) 0xd0, (byte) 0xd5, (byte) 0xc3, (byte) 0xfb, (byte) 0xa3, (byte) 0xba, (byte) 0xb0, (byte) 0xd9, (byte) 0xb6, (byte) 0xc8, (byte) 0xb2, (byte) 0xe2, (byte) 0xca + , (byte) 0xd4, 0x0a, (byte) 0xb5, (byte) 0xd8, (byte) 0xd6, (byte) 0xb7, (byte) 0xa3, (byte) 0xba, (byte) 0xbf, (byte) 0xfc, (byte) 0xbf, (byte) 0xc6, (byte) 0xbf, (byte) 0xc6, (byte) 0xbc, (byte) 0xbc, (byte) 0xb4, (byte) 0xf3, (byte) 0xcf, (byte) 0xc3, 0x0a, (byte) 0xb5, (byte) 0xe7, (byte) 0xbb, (byte) 0xb0, (byte) 0xa3, (byte) 0xba, 0x31 + , 0x38, 0x37, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a + , 0x1b, 0x40, 0x1b, 0x4d, 0x00, 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x00, 0x1b, 0x45, 0x00, 0x1b, 0x47, 0x00, 0x1b, 0x61, 0x00, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a + , 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x0a, (byte) 0xb0, (byte) 0xd9, (byte) 0xb6 + , (byte) 0xc8, (byte) 0xb2, (byte) 0xe2, (byte) 0xca, (byte) 0xd4, (byte) 0xc9, (byte) 0xcc, (byte) 0xbb, (byte) 0xa7, 0x0a, 0x31, 0x38, 0x37, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x1b, 0x4d, 0x00, 0x1b, 0x61, 0x00, 0x1d + , 0x21, 0x00, 0x1b, 0x45, 0x00, 0x1b, 0x47, 0x00, 0x1b, 0x61, 0x00, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a + , 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x0a, 0x1b, 0x4d, 0x00, 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x00, 0x1b, 0x45, 0x00 + , 0x1b, 0x47, 0x00, 0x1b, 0x61, 0x00, 0x1b, 0x61, 0x01, 0x23, 0x31, 0x35, 0x20, (byte) 0xb0, (byte) 0xd9, (byte) 0xb6, (byte) 0xc8, (byte) 0xcd, (byte) 0xe2, (byte) 0xc2, (byte) 0xf4, 0x20, 0x20, 0x31, 0x31, (byte) 0xd4, (byte) 0xc2, 0x30 + , 0x39, (byte) 0xc8, (byte) 0xd5, 0x20, 0x31, 0x37, 0x3a, 0x35, 0x30, 0x3a, 0x33, 0x30, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a + }; + return rv; + } + + /** + * 美团小票(Meituan ticket for ESC cmd) + */ + public static byte[] getMeituanBill() { + byte[] rv = new byte[]{ + 0x1b, 0x40, 0x1b, 0x61, 0x01, 0x1d, 0x21, 0x11, (byte) 0xa3, (byte) 0xa3, 0x31, 0x20, 0x20, (byte) 0xc3, (byte) 0xc0, (byte) 0xcd, (byte) 0xc5, (byte) 0xb2, (byte) 0xe2, (byte) 0xca, (byte) 0xd4, 0x0a + , 0x0a, 0x1d, 0x21, 0x00, (byte) 0xd4, (byte) 0xc1, (byte) 0xcf, (byte) 0xe3, (byte) 0xb8, (byte) 0xdb, (byte) 0xca, (byte) 0xbd, (byte) 0xc9, (byte) 0xd5, (byte) 0xc0, (byte) 0xb0, 0x28, (byte) 0xb5, (byte) 0xda, 0x31, (byte) 0xc1, (byte) 0xaa + , 0x29, 0x0a, 0x1b, 0x21, 0x10, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d + , 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x2a, 0x20, 0x2a, 0x20, 0x2a, 0x20 + , 0x2a, 0x20, 0x2a, 0x20, 0x2a, 0x20, 0x20, (byte) 0xd4, (byte) 0xa4, (byte) 0xb6, (byte) 0xa9, (byte) 0xb5, (byte) 0xa5, 0x20, 0x20, 0x2a, 0x20, 0x2a, 0x20, 0x2a, 0x20, 0x2a + , 0x20, 0x2a, 0x20, 0x2a, 0x0a, (byte) 0xc6, (byte) 0xda, (byte) 0xcd, (byte) 0xfb, (byte) 0xcb, (byte) 0xcd, (byte) 0xb4, (byte) 0xef, (byte) 0xca, (byte) 0xb1, (byte) 0xbc, (byte) 0xe4, 0x3a, 0x20, 0x5b, 0x31, 0x38 + , 0x3a, 0x30, 0x30, 0x5d, 0x0a, 0x1d, 0x21, 0x00, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d + , 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x1b, 0x61, 0x00 + , (byte) 0xcf, (byte) 0xc2, (byte) 0xb5, (byte) 0xa5, (byte) 0xca, (byte) 0xb1, (byte) 0xbc, (byte) 0xe4, 0x3a, 0x30, 0x31, 0x2d, 0x30, 0x31, 0x20, 0x31, 0x32, 0x3a, 0x30, 0x30, 0x0a, 0x1b + , 0x21, 0x10, (byte) 0xb1, (byte) 0xb8, (byte) 0xd7, (byte) 0xa2, 0x3a, (byte) 0xb1, (byte) 0xf0, (byte) 0xcc, (byte) 0xab, (byte) 0xc0, (byte) 0xb1, 0x0a, 0x1d, 0x21, 0x00, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d + , 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d + , 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, (byte) 0xb2, (byte) 0xcb, (byte) 0xc3, (byte) 0xfb, 0x09, 0x09, 0x20, 0x20, 0x20, (byte) 0xca, (byte) 0xfd, (byte) 0xc1, (byte) 0xbf, 0x09, 0x20, 0x20 + , 0x20, 0x20, (byte) 0xd0, (byte) 0xa1, (byte) 0xbc, (byte) 0xc6, 0x09, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d + , 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x1b, 0x21, 0x10 + , (byte) 0xba, (byte) 0xec, (byte) 0xc9, (byte) 0xd5, (byte) 0xc8, (byte) 0xe2, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78 + , 0x31, 0x09, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x1d, 0x21, 0x00, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d + , 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d + , 0x2d, 0x2d, 0x0a, (byte) 0xc5, (byte) 0xe4, (byte) 0xcb, (byte) 0xcd, (byte) 0xb7, (byte) 0xd1, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 + , 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, (byte) 0xb2, (byte) 0xcd, (byte) 0xba, (byte) 0xd0, (byte) 0xb7, (byte) 0xd1, 0x20, 0x20 + , 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 + , 0x20, 0x31, 0x0a, 0x5b, (byte) 0xb3, (byte) 0xac, (byte) 0xca, (byte) 0xb1, (byte) 0xc5, (byte) 0xe2, (byte) 0xb8, (byte) 0xb6, 0x5d, 0x20, 0x2d, (byte) 0xcf, (byte) 0xea, (byte) 0xbc, (byte) 0xfb, (byte) 0xb6, (byte) 0xa9, (byte) 0xb5 + , (byte) 0xa5, 0x0a, (byte) 0xbf, (byte) 0xc9, (byte) 0xbf, (byte) 0xda, (byte) 0xbf, (byte) 0xc9, (byte) 0xc0, (byte) 0xd6, 0x3a, 0x78, 0x31, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d + , 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d + , 0x2d, 0x2d, 0x0a, 0x1b, 0x21, 0x10, (byte) 0xba, (byte) 0xcf, (byte) 0xbc, (byte) 0xc6, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 + , 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x38, (byte) 0xd4, (byte) 0xaa, 0x0a, 0x1b, 0x40, 0x2d, 0x2d, 0x2d + , 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d + , 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x1d, 0x21, 0x11, (byte) 0xd5, (byte) 0xc5, 0x2a, 0x20, 0x31, 0x38, 0x33, 0x31, 0x32, 0x33, 0x34 + , 0x35, 0x36, 0x37, 0x38, 0x0a, (byte) 0xb5, (byte) 0xd8, (byte) 0xd6, (byte) 0xb7, (byte) 0xd0, (byte) 0xc5, (byte) 0xcf, (byte) 0xa2, 0x0a, 0x1d, 0x21, 0x00, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d + , 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d + , 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x1b, 0x40, 0x1b, 0x61, 0x01, 0x1d, 0x21, 0x11, (byte) 0xa3, (byte) 0xa3, 0x31, 0x20, 0x20, (byte) 0xc3, (byte) 0xc0 + , (byte) 0xcd, (byte) 0xc5, (byte) 0xb2, (byte) 0xe2, (byte) 0xca, (byte) 0xd4, 0x0a, 0x1d, 0x21, 0x00, 0x1b, 0x40, 0x0a, 0x0a, 0x0a, 0x1d, 0x56, 0x00 + }; + return rv; + } + + /** + * 饿了么小票(Eleme ticket for ESC cmd) + */ + public static byte[] getErlmoData() { + byte[] rv = new byte[]{ + 0x1b, 0x40, 0x1b, 0x61, 0x00, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x20, 0x1d, 0x21, 0x11, 0x23, 0x31, 0x1d, 0x21, 0x00, 0x00, (byte) 0xb6, (byte) 0xf6 + , (byte) 0xc1, (byte) 0xcb, (byte) 0xc3, (byte) 0xb4, (byte) 0xcd, (byte) (byte) 0xe2, (byte) 0xc2, (byte) 0xf4, (byte) 0xb5, (byte) 0xa5, 0x20, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x0a, 0x0a, 0x1b, 0x61 + , 0x01, (byte) 0xbf, (byte) 0xa8, (byte) 0xc8, (byte) 0xf8, (byte) 0xc5, (byte) 0xfb, (byte) 0xc8, (byte) 0xf8, 0x0a, 0x0a, 0x1b, 0x61, 0x00, 0x1b, 0x61, 0x01, 0x1d, 0x21, 0x11, 0x2d, 0x2d + , (byte) 0xd2, (byte) 0xd1, (byte) 0xd6, (byte) 0xa7, (byte) 0xb8, (byte) 0xb6, 0x2d, 0x2d, 0x1d, 0x21, 0x00, 0x00, 0x0a, 0x0a, 0x1b, 0x61, 0x00, 0x1b, 0x61, 0x01, 0x1d, 0x21 + , 0x11, (byte) 0xd4, (byte) 0xa4, (byte) 0xbc, (byte) 0xc6, 0x31, 0x39, 0x3a, 0x30, 0x30, (byte) 0xcb, (byte) 0xcd, (byte) 0xb4, (byte) (byte) 0xef, 0x1d, 0x21, 0x00, 0x00, 0x0a, 0x0a, 0x1b, 0x61 + , 0x00, 0x5b, (byte) 0xcf, (byte) 0xc2, (byte) 0xb5, (byte) 0xa5, (byte) 0xca, (byte) 0xb1, (byte) 0xbc, (byte) (byte) 0xe4, 0x5d, 0x32, 0x30, 0x31, 0x34, 0x2d, 0x31, 0x32, 0x2d, 0x30, 0x33, 0x20 + , 0x31, 0x36, 0x3a, 0x32, 0x31, 0x0a, 0x5b, (byte) 0xb1, (byte) 0xb8, (byte) 0xd7, (byte) 0xa2, 0x5d, 0x1d, 0x21, 0x01, (byte) 0xb2, (byte) 0xbb, (byte) 0xb3, (byte) 0xd4, (byte) 0xc0, (byte) 0xb1, 0x20 + , (byte) 0xc0, (byte) 0xb1, (byte) 0xd2, (byte) 0xbb, (byte) 0xb5, (byte) (byte) 0xe3, 0x20, (byte) 0xb6, (byte) (byte) 0xe0, (byte) 0xbc, (byte) 0xd3, (byte) 0xc3, (byte) 0xd7, 0x20, (byte) 0xc3, (byte) 0xbb, (byte) 0xc1, (byte) (byte) 0xe3, (byte) 0xc7, (byte) 0xae, 0x1d, 0x21 + , 0x00, 0x0a, 0x5b, (byte) 0xb7, (byte) 0xa2, (byte) 0xc6, (byte) 0xb1, 0x5d, (byte) 0xd5, (byte) (byte) 0xe2, (byte) 0xca, (byte) 0xc7, (byte) 0xd2, (byte) 0xbb, (byte) 0xb8, (byte) 0xf6, (byte) 0xb7, (byte) 0xa2, (byte) 0xc6, (byte) 0xb1, (byte) 0xcc, (byte) 0xa7 + , (byte) 0xcd, (byte) 0xb7, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d + , 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, (byte) 0xb2, (byte) 0xcb, (byte) 0xc3, (byte) 0xfb, 0x20, 0x20, 0x20, 0x20 + , 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, (byte) 0xca, (byte) 0xfd, (byte) 0xc1, (byte) 0xbf, 0x20, 0x20, (byte) 0xd0, (byte) 0xa1 + , (byte) 0xbc, (byte) 0xc6, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x20, 0x31, (byte) 0xba, (byte) 0xc5, (byte) 0xc0, (byte) 0xba, (byte) 0xd7, (byte) 0xd3 + , 0x20, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x1d, 0x21, 0x01, (byte) 0xb2, (byte) (byte) 0xe2, (byte) 0xca, (byte) 0xd4, (byte) 0xc3, (byte) 0xc0 + , (byte) 0xca, (byte) 0xb3, (byte) 0xd2, (byte) 0xbb, 0x1d, 0x21, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x1d, 0x21 + , 0x01, 0x20, 0x78, 0x34, 0x1d, 0x21, 0x00, 0x1d, 0x21, 0x01, 0x1d, 0x21, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x1d, 0x21, 0x01, 0x34 + , 0x1d, 0x21, 0x00, 0x0a, 0x1d, 0x21, 0x01, (byte) 0xb2, (byte) (byte) 0xe2, (byte) 0xca, (byte) 0xd4, (byte) 0xc3, (byte) 0xc0, (byte) 0xca, (byte) 0xb3, (byte) 0xb6, (byte) 0xfe, 0x1d, 0x21, 0x00, 0x20, 0x20 + , 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x1d, 0x21, 0x01, 0x20, 0x78, 0x36, 0x1d, 0x21, 0x00, 0x1d, 0x21 + , 0x01, 0x1d, 0x21, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x1d, 0x21, 0x01, 0x36, 0x1d, 0x21, 0x00, 0x0a, 0x1d, 0x21, 0x01, (byte) 0xb2, (byte) (byte) 0xe2 + , (byte) 0xca, (byte) 0xd4, (byte) 0xc3, (byte) 0xc0, (byte) 0xca, (byte) 0xb3, (byte) 0xc8, (byte) 0xfd, 0x1d, 0x21, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 + , 0x20, 0x20, 0x1d, 0x21, 0x01, 0x20, 0x78, 0x32, 0x1d, 0x21, 0x00, 0x1d, 0x21, 0x01, 0x1d, 0x21, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20 + , 0x1d, 0x21, 0x01, 0x32, 0x1d, 0x21, 0x00, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x20, 0x32, (byte) 0xba + , (byte) 0xc5, (byte) 0xc0, (byte) 0xba, (byte) 0xd7, (byte) 0xd3, 0x20, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x1d, 0x21, 0x01, (byte) 0xb2 + , (byte) (byte) 0xe2, (byte) 0xca, (byte) 0xd4, 0x31, 0x1d, 0x21, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 + , 0x20, 0x20, 0x20, 0x1d, 0x21, 0x01, 0x20, 0x78, 0x31, 0x1d, 0x21, 0x00, 0x1d, 0x21, 0x01, 0x1d, 0x21, 0x00, 0x20, 0x20, 0x20, 0x20 + , 0x20, 0x1d, 0x21, 0x01, 0x31, 0x1d, 0x21, 0x00, 0x0a, 0x1d, 0x21, 0x01, (byte) 0xb2, (byte) (byte) 0xe2, (byte) 0xca, (byte) 0xd4, 0x32, 0x1d, 0x21, 0x00, 0x20, 0x20 + , 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x1d, 0x21, 0x01, 0x20, 0x78, 0x31 + , 0x1d, 0x21, 0x00, 0x1d, 0x21, 0x01, 0x1d, 0x21, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x1d, 0x21, 0x01, 0x31, 0x1d, 0x21, 0x00, 0x0a + , 0x1d, 0x21, 0x01, (byte) 0xb2, (byte) (byte) 0xe2, (byte) 0xca, (byte) 0xd4, 0x33, 0x1d, 0x21, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 + , 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x1d, 0x21, 0x01, 0x20, 0x78, 0x31, 0x1d, 0x21, 0x00, 0x1d, 0x21, 0x01, 0x1d, 0x21, 0x00 + , 0x20, 0x20, 0x20, 0x20, 0x1d, 0x21, 0x01, 0x32, 0x33, 0x1d, 0x21, 0x00, 0x0a, 0x1d, 0x21, 0x01, 0x28, 0x2b, 0x29, (byte) 0xb2, (byte) (byte) 0xe2, (byte) 0xca + , (byte) 0xd4, (byte) 0xd1, (byte) 0xf3, (byte) 0xc6, (byte) 0xf8, (byte) 0xa4, (byte) 0xce, (byte) 0xce, (byte) 0xf7, (byte) 0xca, (byte) 0xbd, (byte) 0xcc, (byte) 0xf0, (byte) 0xb5, (byte) (byte) 0xe3, 0x1d, 0x21, 0x00, 0x20, 0x20, 0x1d, 0x21 + , 0x01, 0x20, 0x78, 0x31, 0x1d, 0x21, 0x00, 0x1d, 0x21, 0x01, 0x1d, 0x21, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x1d, 0x21, 0x01, 0x31 + , 0x1d, 0x21, 0x00, 0x0a, 0x1d, 0x21, 0x01, 0x28, 0x2b, 0x29, (byte) 0xb2, (byte) (byte) 0xe2, (byte) 0xca, (byte) 0xd4, (byte) 0xcb, (byte) (byte) 0xe1, (byte) 0xc0, (byte) 0xb1, (byte) 0xc4, (byte) 0xbe, (byte) 0xb6, (byte) 0xfa + , 0x1d, 0x21, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x1d, 0x21, 0x01, 0x20, 0x78, 0x31, 0x1d, 0x21, 0x00, 0x1d, 0x21 + , 0x01, 0x1d, 0x21, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x1d, 0x21, 0x01, 0x38, 0x1d, 0x21, 0x00, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d + , 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x20, 0x33, (byte) 0xba, (byte) 0xc5, (byte) 0xc0, (byte) 0xba, (byte) 0xd7, (byte) 0xd3, 0x20, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d + , 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x1d, 0x21, 0x01, (byte) 0xb2, (byte) (byte) 0xe2, (byte) 0xca, (byte) 0xd4, (byte) 0xb2, (byte) 0xcb, (byte) 0xc6, (byte) 0xb7, (byte) 0xc3, (byte) 0xfb, (byte) 0xd7, (byte) 0xd6, (byte) 0xba, (byte) 0xdc + , (byte) 0xb3, (byte) 0xa4, (byte) 0xba, (byte) 0xdc, (byte) 0xb3, (byte) 0xa4, (byte) 0xba, (byte) 0xdc, (byte) 0xb3, (byte) 0xa4, (byte) 0xba, (byte) 0xdc, (byte) 0xb3, (byte) 0xa4, (byte) 0xba, (byte) 0xdc, (byte) 0xb3, (byte) 0xa4, 0x1d, 0x21, 0x00, 0x0a + , 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 + , 0x20, 0x1d, 0x21, 0x01, 0x20, 0x78, 0x31, 0x1d, 0x21, 0x00, 0x1d, 0x21, 0x01, 0x1d, 0x21, 0x00, 0x20, 0x20, 0x20, 0x1d, 0x21, 0x01 + , 0x33, 0x30, 0x30, 0x1d, 0x21, 0x00, 0x0a, 0x1d, 0x21, 0x01, (byte) 0xb2, (byte) (byte) 0xe2, (byte) 0xca, (byte) 0xd4, 0x1d, 0x21, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20 + , 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x1d, 0x21, 0x01, 0x20, 0x78, 0x31, 0x1d, 0x21 + , 0x00, 0x1d, 0x21, 0x01, 0x1d, 0x21, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x1d, 0x21, 0x01, 0x31, 0x1d, 0x21, 0x00, 0x0a, 0x2d, 0x2d + , 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x20, (byte) 0xc6, (byte) (byte) 0xe4, (byte) 0xcb, (byte) 0xfb, (byte) 0xb7, (byte) 0xd1, (byte) 0xd3, (byte) 0xc3, 0x20, 0x2d, 0x2d, 0x2d + , 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x1d, 0x21, 0x01, (byte) 0xc5, (byte) (byte) 0xe4, (byte) 0xcb, (byte) 0xcd, (byte) 0xb7, (byte) 0xd1, 0x1d, 0x21, 0x00, 0x20 + , 0x20, 0x20, 0x20, 0x20 + }; + return rv; + } + + /** + * 口碑小票(KouBei ticket for ESC cmd) + */ + public static byte[] getKoubeiData() { + byte[] rv = new byte[]{ + 0x1b, 0x40, 0x1b, 0x61, 0x01, 0x1d, 0x21, 0x11, 0x23, 0x34, (byte) 0xbf, (byte) 0xda, (byte) 0xb1, (byte) 0xae, (byte) 0xcd, (byte) 0xe2, + (byte) 0xc2, (byte) 0xf4, 0x0a, 0x1b, 0x40, 0x1b, 0x61, 0x01, 0x1d, 0x21, 0x11, 0x0a, 0x1b, 0x40, 0x1b, 0x61, + 0x01, (byte) 0xb7, (byte) 0xeb, (byte) 0xbc, (byte) 0xc7, (byte) 0xbb, (byte) 0xc6, (byte) 0xec, (byte) 0xcb, (byte) 0xbc, (byte) 0xa6, (byte) 0xc3, (byte) 0xd7, (byte) 0xb7, (byte) 0xb9, 0x0a, + 0x1b, 0x40, 0x1b, 0x61, 0x00, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, + 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, + 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x0a, 0x1b, 0x40, 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x11, 0x31, 0x37, + 0x3a, 0x32, 0x30, 0x20, (byte) 0xbe, (byte) 0xa1, (byte) 0xbf, (byte) 0xec, (byte) 0xcb, (byte) 0xcd, (byte) 0xb4, (byte) 0xef, 0x0a, 0x1b, 0x40, 0x1b, + 0x61, 0x00, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x0a, 0x1b, 0x40, 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x11, 0x31, 0x38, 0x36, 0x31, 0x30, 0x38, + 0x35, 0x38, 0x33, 0x33, 0x37, 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x01, (byte) 0xce, (byte) 0xa4, (byte) 0xd0, (byte) 0xa1, (byte) 0xb1, + (byte) 0xa6, 0x0a, 0x1b, 0x40, 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x11, (byte) 0xb4, (byte) 0xb4, (byte) 0xd6, (byte) 0xc7, (byte) 0xcc, (byte) 0xec, + (byte) 0xb5, (byte) 0xd8, (byte) 0xb9, (byte) 0xe3, (byte) 0xb3, (byte) 0xa1, 0x37, (byte) 0xba, (byte) 0xc5, (byte) 0xc2, (byte) 0xa5, 0x28, 0x36, 0x30, 0x35, (byte) 0xca, + (byte) 0xd2, 0x29, 0x0a, 0x1b, 0x40, 0x1b, 0x61, 0x00, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x1b, 0x40, 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x01, + (byte) 0xcf, (byte) 0xc2, (byte) 0xb5, (byte) 0xa5, (byte) 0xa3, (byte) 0xba, 0x31, 0x36, 0x3a, 0x33, 0x35, 0x0a, 0x1b, 0x40, 0x1b, 0x61, + 0x00, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, + 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, + 0x2a, 0x0a, 0x1b, 0x40, 0x1b, 0x61, 0x00, (byte) 0xb2, (byte) 0xcb, (byte) 0xc6, (byte) 0xb7, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x1b, 0x61, 0x00, (byte) 0xca, (byte) 0xfd, (byte) 0xc1, (byte) 0xbf, 0x1b, 0x61, 0x00, 0x20, + 0x20, (byte) 0xb5, (byte) 0xa5, (byte) 0xbc, (byte) 0xdb, 0x1b, 0x61, 0x00, 0x20, 0x20, (byte) 0xbd, (byte) 0xf0, (byte) 0xb6, (byte) 0xee, 0x0a, 0x1b, + 0x40, 0x1b, 0x61, 0x00, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x0a, 0x1b, 0x40, 0x1b, 0x61, 0x00, (byte) 0xbb, (byte) 0xc6, (byte) 0xec, (byte) 0xcb, (byte) 0xce, (byte) 0xe5, (byte) 0xbb, + (byte) 0xa8, (byte) 0xc8, (byte) 0xe2, (byte) 0xb7, (byte) 0xb9, (byte) 0xa3, (byte) 0xa8, (byte) 0xb4, (byte) 0xf3, (byte) 0xa3, (byte) 0xa9, 0x28, (byte) 0xb2, (byte) 0xbb, (byte) 0xc0, (byte) 0xb1, + 0x29, 0x0a, 0x1b, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x1b, 0x61, 0x00, 0x20, 0x31, 0x20, 0x20, 0x1b, 0x61, 0x00, 0x20, 0x20, 0x20, 0x20, + 0x32, 0x35, 0x1b, 0x61, 0x00, 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, 0x0a, 0x1b, 0x40, 0x1b, 0x61, + 0x00, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x0a, 0x1b, 0x40, 0x1b, 0x61, 0x00, (byte) 0xc5, (byte) 0xe4, (byte) 0xcb, (byte) 0xcd, (byte) 0xb7, (byte) 0xd1, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x1b, 0x61, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x0a, 0x1b, 0x40, 0x1b, 0x61, 0x00, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x1b, 0x40, 0x1b, + 0x61, 0x00, 0x1d, 0x21, 0x01, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, (byte) 0xca, (byte) 0xb5, (byte) 0xb8, (byte) 0xb6, (byte) 0xbd, (byte) 0xf0, (byte) 0xb6, (byte) 0xee, (byte) 0xa3, (byte) 0xba, (byte) 0xa3, + (byte) 0xa4, 0x32, 0x37, 0x0a, 0x1b, 0x40, 0x0a, 0x1b, 0x40, 0x0a, 0x1b, 0x40, 0x1b, 0x61, 0x01, 0x1d, + 0x21, 0x11, (byte) 0xbf, (byte) 0xda, (byte) 0xb1, (byte) 0xae, (byte) 0xcd, (byte) 0xe2, (byte) 0xc2, (byte) 0xf4, 0x0a, 0x1b, 0x40, 0x0a, 0x1b, 0x40, + 0x1d, 0x56, 0x42, 0x0a, 0x0a + }; + return rv; + } + + /** + * 打印机固件自检页 self check + */ + public static byte[] PrintSelfcheck(){ + byte[] bCmd; + + //MS self cmd + bCmd = new byte[]{0x1D,0x28,0x41,0x02,0x00,0x00,0x02}; + + return bCmd; + } + + + public static final byte GS = 0x1D;// Group separator + + public static byte[] printBitmap(byte[] bytes){ + byte[] bytes1 = new byte[4]; + bytes1[0] = GS; + bytes1[1] = 0x76; + bytes1[2] = 0x30; + bytes1[3] = 0x00; + + return combineArrays(bytes1, bytes, cutAndLine()); + } + + public static byte[] cutAndLine() { + byte[] command = {0x1d, 0x56, 0x42, 0x01}; + + return command; + } + + public static byte[] combineArrays(byte[]... a) { + int massLength = 0; + for (byte[] b : a) { + massLength += b.length; + } + byte[] c = new byte[massLength]; + byte[] d; + int index = 0; + for (byte[] anA : a) { + d = anA; + System.arraycopy(d, 0, c, index, d.length); + index += d.length; + } + return c; + } + + + public static byte[] byteMerger(byte[] byte_1, byte[] byte_2) { + byte[] byte_3 = new byte[byte_1.length + byte_2.length]; + System.arraycopy(byte_1, 0, byte_3, 0, byte_1.length); + System.arraycopy(byte_2, 0, byte_3, byte_1.length, byte_2.length); + return byte_3; + } + /** + * 生成间断性黑块数据 + * @param w : 打印纸宽度, 单位点 + * @return + */ + public static byte[] initBlackBlock(int w){ + int ww = (w + 7)/8 ; + int n = (ww + 11)/12; + int hh = n * 24; + byte[] data = new byte[ hh * ww + 5]; + + data[0] = (byte)ww;//xL + data[1] = (byte)(ww >> 8);//xH + data[2] = (byte)hh; + data[3] = (byte)(hh >> 8); + + int k = 4; + for(int i=0; i < n; i++){ + for(int j=0; j<24; j++){ + for(int m =0; m> 8);//xH + data[2] = (byte)hh; + data[3] = (byte)(hh >> 8); + + int k = 4; + for(int i=0; i Date: Wed, 17 Jan 2024 09:28:45 +0800 Subject: [PATCH 04/24] =?UTF-8?q?=E5=8E=BB=E9=99=A4=E4=BA=8B=E5=8A=A1?= =?UTF-8?q?=E6=89=93=E5=8D=B0demo1=E3=80=812=E3=80=813=EF=BC=8C=20?= =?UTF-8?q?=E8=A1=A5=E5=85=85api?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../imin_printer/IminPrinterPlugin.java | 40 +++++++++++-------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java b/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java index 8abd073..c5fce07 100644 --- a/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java +++ b/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java @@ -269,6 +269,14 @@ public void callback(int status) { } result.success(true); break; + case "fullCut": + if (iminPrintUtils != null) { + //TODO + } else { + PrinterHelper.getInstance().fullCut(); + } + result.success(true); + break; case "printSingleBitmap": try { byte[] img = call.argument("bitmap"); @@ -635,19 +643,27 @@ public void run() { int doubleQR1Version = call.argument("version"); if (iminPrintUtils != null) { iminPrintUtils.setDoubleQR1Version(doubleQR1Version); + } else { + PrinterHelper.getInstance().setDoubleQR1Version(doubleQR1Version); } + result.success(true); break; case "setDoubleQR2Version": int doubleQR2Version = call.argument("version"); if (iminPrintUtils != null) { iminPrintUtils.setDoubleQR2Version(doubleQR2Version); + } else { + PrinterHelper.getInstance().setDoubleQR2Version(doubleQR2Version); } + result.success(true); break; case "printDoubleQR": String qrCode1Text = call.argument("qrCode1Text"); String qrCode2Text = call.argument("qrCode2Text"); if (iminPrintUtils != null) { iminPrintUtils.printDoubleQR(qrCode1Text, qrCode2Text); + } else { + PrinterHelper.getInstance().printDoubleQR(qrCode1Text, qrCode2Text, null); } result.success(true); break; @@ -993,6 +1009,13 @@ public void onPrintResult(int code, String msg) throws RemoteException { } result.success(true); break; + case "printTextBitmap": + if (iminPrintUtils == null) { + String textStr = call.argument("text"); + PrinterHelper.getInstance().printTextBitmap(textStr + "\n", null); + } + result.success(true); + break; case "printTextBitmapWithAli": if (iminPrintUtils == null) { String textBitmapString = call.argument("text"); @@ -1064,23 +1087,6 @@ public void onPrintResult(int code, String msg) throws RemoteException { result.success(true); break; - case "printBuffer"://事务打印测试用1,2,3 - if (iminPrintUtils == null) { - int bufferIndex = call.argument("bufferIndex"); - Log.d(TAG, "bufferIndex " + bufferIndex); - if (bufferIndex == 0) { - - PrinterHelper.getInstance().sendRAWData(BytesUtils.getBaiduTestBytes(), null); - } else if (bufferIndex == 1) { - - PrinterHelper.getInstance().sendRAWData(BytesUtils.getErlmoData(), null); - } else if (bufferIndex == 2) { - PrinterHelper.getInstance().sendRAWData(BytesUtils.getMeituanBill(), null); - } - } - result.success(true); - break; - case "commitPrinterBuffer"://提交事务打印 if (iminPrintUtils == null) { PrinterHelper.getInstance().commitPrinterBuffer(new INeoPrinterCallback() { From d988ca08b692ed8748f656b50f39a05b09b15374 Mon Sep 17 00:00:00 2001 From: tanbotao Date: Wed, 17 Jan 2024 09:38:53 +0800 Subject: [PATCH 05/24] =?UTF-8?q?=E5=8E=BB=E9=99=A4=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E7=94=A8=E4=BE=8B=E6=95=B0=E6=8D=AEbyte?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../imin/printer/imin_printer/BytesUtils.java | 210 ------------------ 1 file changed, 210 deletions(-) diff --git a/android/src/main/java/com/imin/printer/imin_printer/BytesUtils.java b/android/src/main/java/com/imin/printer/imin_printer/BytesUtils.java index 916e8a6..ee0cdd1 100644 --- a/android/src/main/java/com/imin/printer/imin_printer/BytesUtils.java +++ b/android/src/main/java/com/imin/printer/imin_printer/BytesUtils.java @@ -1,216 +1,6 @@ package com.imin.printer.imin_printer; public class BytesUtils { - /** - * 百度小票 (Baidu ticket for ESC cmd) - */ - public static byte[] getBaiduTestBytes() { - byte[] rv = new byte[]{ - 0x1b, 0x40, 0x1b, 0x4d, 0x00, 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x11, 0x1b, 0x45, 0x00, 0x1b, 0x47, 0x00, 0x1b, 0x61, 0x00, 0x1b, 0x45, 0x01, 0x1b, 0x47, 0x01, (byte) 0xb1, (byte) 0xbe - , (byte) 0xb5, (byte) 0xea, (byte) 0xc1, (byte) 0xf4, (byte) 0xb4, (byte) 0xe6, 0x0a, 0x1b, 0x4d, 0x00, 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x00, 0x1b, 0x45, 0x00, 0x1b, 0x47, 0x00, 0x1b, 0x61, 0x00, 0x2a, 0x2a, 0x2a - , 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a - , 0x2a, 0x0a - , 0x1b, 0x40, 0x1b, 0x4d, 0x00, 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x11, 0x1b, 0x45, 0x00, 0x1b, 0x47, 0x00, 0x1b, 0x61, 0x00, 0x1b, 0x45, 0x01, 0x1b, 0x47, 0x01, 0x1b, 0x61 - , 0x01, 0x23, 0x31, 0x35, 0x20, (byte) 0xb0, (byte) 0xd9, (byte) 0xb6, (byte) 0xc8, (byte) 0xcd, (byte) 0xe2, (byte) 0xc2, (byte) 0xf4, 0x0a, 0x5b, (byte) 0xbb, (byte) 0xf5, (byte) 0xb5, (byte) 0xbd, (byte) 0xb8, (byte) 0xb6, (byte) 0xbf, (byte) 0xee, 0x5d, 0x0a, 0x1b, 0x4d, 0x00 - , 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x00, 0x1b, 0x45, 0x00, 0x1b, 0x47, 0x00, 0x1b, 0x61, 0x00, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a - , 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x0a - , 0x1b, 0x40, 0x1b, 0x4d, 0x00, 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x01, 0x1b, 0x45, 0x00, 0x1b, 0x47, 0x00, 0x1b, 0x61, 0x00, (byte) 0xc6, (byte) 0xda, (byte) 0xcd, (byte) 0xfb, (byte) 0xcb, (byte) 0xcd, (byte) 0xb4, (byte) 0xef - , (byte) 0xca, (byte) 0xb1, (byte) 0xbc, (byte) 0xe4, (byte) 0xa3, (byte) 0xba, (byte) 0xc1, (byte) 0xa2, (byte) 0xbc, (byte) 0xb4, (byte) 0xc5, (byte) 0xe4, (byte) 0xcb, (byte) 0xcd, 0x0a, (byte) 0xb6, (byte) 0xa9, (byte) 0xb5, (byte) 0xa5, (byte) 0xb1, (byte) 0xb8, (byte) 0xd7, (byte) 0xa2, (byte) 0xa3, (byte) 0xba, (byte) 0xc7, (byte) 0xeb, (byte) 0xcb - , (byte) 0xcd, (byte) 0xb5, (byte) 0xbd, (byte) 0xbf, (byte) 0xfc, (byte) 0xbf, (byte) 0xc6, (byte) 0xce, (byte) 0xf7, (byte) 0xc3, (byte) 0xc5, 0x2c, (byte) 0xb2, (byte) 0xbb, (byte) 0xd2, (byte) 0xaa, (byte) 0xc0, (byte) 0xb1, 0x0a, (byte) 0xb7, (byte) 0xa2, (byte) 0xc6, (byte) 0xb1, (byte) 0xd0, (byte) 0xc5, (byte) 0xcf, (byte) 0xa2, (byte) 0xa3 - , (byte) 0xba, (byte) 0xb0, (byte) 0xd9, (byte) 0xb6, (byte) 0xc8, (byte) 0xcd, (byte) 0xe2, (byte) 0xc2, (byte) 0xf4, (byte) 0xb7, (byte) 0xa2, (byte) 0xc6, (byte) 0xb1, 0x0a, 0x1b, 0x4d, 0x00, 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x00, 0x1b, 0x45, 0x00, 0x1b, 0x47 - , 0x00, 0x1b, 0x61, 0x00, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a - , 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x0a - , 0x1b, 0x40, 0x1b, 0x4d, 0x00, 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x00, 0x1b, 0x45, 0x00, 0x1b, 0x47, 0x00, 0x1b, 0x61, 0x00, (byte) 0xb6, (byte) 0xa9, (byte) 0xb5, (byte) 0xa5, (byte) 0xb1, (byte) 0xe0, (byte) 0xba, (byte) 0xc5 - , (byte) 0xa3, (byte) 0xba, 0x31, 0x34, 0x31, 0x38, 0x37, 0x31, 0x38, 0x36, 0x39, 0x31, 0x31, 0x36, 0x38, 0x39, 0x0a, (byte) 0xcf, (byte) 0xc2, (byte) 0xb5, (byte) 0xa5, (byte) 0xca, (byte) 0xb1, (byte) 0xbc, (byte) 0xe4, (byte) 0xa3, (byte) 0xba, 0x32 - , 0x30, 0x31, 0x34, 0x2d, 0x31, 0x32, 0x2d, 0x31, 0x36, 0x20, 0x31, 0x36, 0x3a, 0x33, 0x31, 0x0a, 0x1b, 0x4d, 0x00, 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x00, 0x1b, 0x45, 0x00 - , 0x1b, 0x47, 0x00, 0x1b, 0x61, 0x00, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a - , 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x0a - , 0x1b, 0x40, 0x1b, 0x4d, 0x00, 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x01, 0x1b, 0x45, 0x00, 0x1b, 0x47, 0x00, 0x1b, 0x61, 0x00, (byte) 0xb2, (byte) 0xcb, (byte) 0xc6, (byte) 0xb7, (byte) 0xc3, (byte) 0xfb, (byte) 0xb3, (byte) 0xc6 - , 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, (byte) 0xca, (byte) 0xfd, (byte) 0xc1, (byte) 0xbf, 0x20, 0x20, 0x20, 0x20, 0x20, (byte) 0xbd, (byte) 0xf0, (byte) 0xb6, (byte) 0xee, 0x0a, 0x1b, 0x4d, 0x00, 0x1b, 0x61 - , 0x00, 0x1d, 0x21, 0x00, 0x1b, 0x45, 0x00, 0x1b, 0x47, 0x00, 0x1b, 0x61, 0x00, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d - , 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x1b, 0x4d, 0x00, 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x01, 0x1b - , 0x45, 0x00, 0x1b, 0x47, 0x00, 0x1b, 0x61, 0x00, (byte) 0xcf, (byte) 0xe3, (byte) 0xc0, (byte) 0xb1, (byte) 0xc3, (byte) 0xe6, (byte) 0xcc, (byte) 0xd7, (byte) 0xb2, (byte) 0xcd, 0x1b, 0x24, (byte) 0xf2, 0x00, 0x31, 0x1b, 0x24, 0x25, 0x01, (byte) 0xa3 - , (byte) 0xa4, 0x34, 0x30, 0x2e, 0x30, 0x30, 0x0a, 0x1b, 0x4d, 0x00, 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x00, 0x1b, 0x45, 0x00, 0x1b, 0x47, 0x00, 0x1b, 0x61, 0x00, 0x1b, 0x4d, 0x00 - , 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x00, 0x1b, 0x45, 0x00, 0x1b, 0x47, 0x00, 0x1b, 0x61, 0x00, 0x1b, 0x4d, 0x00, 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x01, 0x1b, 0x45, 0x00, 0x1b - , 0x47, 0x00, 0x1b, 0x61, 0x00, (byte) 0xcb, (byte) 0xd8, (byte) 0xca, (byte) 0xb3, (byte) 0xcc, (byte) 0xec, (byte) 0xcf, (byte) 0xc2, (byte) 0xba, (byte) 0xba, (byte) 0xb1, (byte) 0xa4, 0x1b, 0x24, (byte) 0xf2, 0x00, 0x31, 0x1b, 0x24, 0x25, 0x01, (byte) 0xa3, (byte) 0xa4 - , 0x33, 0x38, 0x2e, 0x30, 0x30, 0x0a, 0x1b, 0x4d, 0x00, 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x00, 0x1b, 0x45, 0x00, 0x1b, 0x47, 0x00, 0x1b, 0x61, 0x00, 0x1b, 0x4d, 0x00, 0x1b - , 0x61, 0x00, 0x1d, 0x21, 0x00, 0x1b, 0x45, 0x00, 0x1b, 0x47, 0x00, 0x1b, 0x61, 0x00 - , 0x1b, 0x40, 0x1b, 0x4d, 0x00, 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x00, 0x1b, 0x45, 0x00, 0x1b, 0x47, 0x00, 0x1b, 0x61, 0x00, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d - , 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a - , 0x1b, 0x40, 0x1b, 0x4d, 0x00, 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x00, 0x1b, 0x45, 0x00, 0x1b, 0x47, 0x00, 0x1b, 0x61, 0x00, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a - , 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x0a, 0x1b, 0x4d, 0x00 - , 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x01, 0x1b, 0x45, 0x00, 0x1b, 0x47, 0x00, 0x1b, 0x61, 0x00, (byte) 0xd0, (byte) 0xd5, (byte) 0xc3, (byte) 0xfb, (byte) 0xa3, (byte) 0xba, (byte) 0xb0, (byte) 0xd9, (byte) 0xb6, (byte) 0xc8, (byte) 0xb2, (byte) 0xe2, (byte) 0xca - , (byte) 0xd4, 0x0a, (byte) 0xb5, (byte) 0xd8, (byte) 0xd6, (byte) 0xb7, (byte) 0xa3, (byte) 0xba, (byte) 0xbf, (byte) 0xfc, (byte) 0xbf, (byte) 0xc6, (byte) 0xbf, (byte) 0xc6, (byte) 0xbc, (byte) 0xbc, (byte) 0xb4, (byte) 0xf3, (byte) 0xcf, (byte) 0xc3, 0x0a, (byte) 0xb5, (byte) 0xe7, (byte) 0xbb, (byte) 0xb0, (byte) 0xa3, (byte) 0xba, 0x31 - , 0x38, 0x37, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a - , 0x1b, 0x40, 0x1b, 0x4d, 0x00, 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x00, 0x1b, 0x45, 0x00, 0x1b, 0x47, 0x00, 0x1b, 0x61, 0x00, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a - , 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x0a, (byte) 0xb0, (byte) 0xd9, (byte) 0xb6 - , (byte) 0xc8, (byte) 0xb2, (byte) 0xe2, (byte) 0xca, (byte) 0xd4, (byte) 0xc9, (byte) 0xcc, (byte) 0xbb, (byte) 0xa7, 0x0a, 0x31, 0x38, 0x37, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x1b, 0x4d, 0x00, 0x1b, 0x61, 0x00, 0x1d - , 0x21, 0x00, 0x1b, 0x45, 0x00, 0x1b, 0x47, 0x00, 0x1b, 0x61, 0x00, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a - , 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x0a, 0x1b, 0x4d, 0x00, 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x00, 0x1b, 0x45, 0x00 - , 0x1b, 0x47, 0x00, 0x1b, 0x61, 0x00, 0x1b, 0x61, 0x01, 0x23, 0x31, 0x35, 0x20, (byte) 0xb0, (byte) 0xd9, (byte) 0xb6, (byte) 0xc8, (byte) 0xcd, (byte) 0xe2, (byte) 0xc2, (byte) 0xf4, 0x20, 0x20, 0x31, 0x31, (byte) 0xd4, (byte) 0xc2, 0x30 - , 0x39, (byte) 0xc8, (byte) 0xd5, 0x20, 0x31, 0x37, 0x3a, 0x35, 0x30, 0x3a, 0x33, 0x30, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a - }; - return rv; - } - - /** - * 美团小票(Meituan ticket for ESC cmd) - */ - public static byte[] getMeituanBill() { - byte[] rv = new byte[]{ - 0x1b, 0x40, 0x1b, 0x61, 0x01, 0x1d, 0x21, 0x11, (byte) 0xa3, (byte) 0xa3, 0x31, 0x20, 0x20, (byte) 0xc3, (byte) 0xc0, (byte) 0xcd, (byte) 0xc5, (byte) 0xb2, (byte) 0xe2, (byte) 0xca, (byte) 0xd4, 0x0a - , 0x0a, 0x1d, 0x21, 0x00, (byte) 0xd4, (byte) 0xc1, (byte) 0xcf, (byte) 0xe3, (byte) 0xb8, (byte) 0xdb, (byte) 0xca, (byte) 0xbd, (byte) 0xc9, (byte) 0xd5, (byte) 0xc0, (byte) 0xb0, 0x28, (byte) 0xb5, (byte) 0xda, 0x31, (byte) 0xc1, (byte) 0xaa - , 0x29, 0x0a, 0x1b, 0x21, 0x10, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d - , 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x2a, 0x20, 0x2a, 0x20, 0x2a, 0x20 - , 0x2a, 0x20, 0x2a, 0x20, 0x2a, 0x20, 0x20, (byte) 0xd4, (byte) 0xa4, (byte) 0xb6, (byte) 0xa9, (byte) 0xb5, (byte) 0xa5, 0x20, 0x20, 0x2a, 0x20, 0x2a, 0x20, 0x2a, 0x20, 0x2a - , 0x20, 0x2a, 0x20, 0x2a, 0x0a, (byte) 0xc6, (byte) 0xda, (byte) 0xcd, (byte) 0xfb, (byte) 0xcb, (byte) 0xcd, (byte) 0xb4, (byte) 0xef, (byte) 0xca, (byte) 0xb1, (byte) 0xbc, (byte) 0xe4, 0x3a, 0x20, 0x5b, 0x31, 0x38 - , 0x3a, 0x30, 0x30, 0x5d, 0x0a, 0x1d, 0x21, 0x00, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d - , 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x1b, 0x61, 0x00 - , (byte) 0xcf, (byte) 0xc2, (byte) 0xb5, (byte) 0xa5, (byte) 0xca, (byte) 0xb1, (byte) 0xbc, (byte) 0xe4, 0x3a, 0x30, 0x31, 0x2d, 0x30, 0x31, 0x20, 0x31, 0x32, 0x3a, 0x30, 0x30, 0x0a, 0x1b - , 0x21, 0x10, (byte) 0xb1, (byte) 0xb8, (byte) 0xd7, (byte) 0xa2, 0x3a, (byte) 0xb1, (byte) 0xf0, (byte) 0xcc, (byte) 0xab, (byte) 0xc0, (byte) 0xb1, 0x0a, 0x1d, 0x21, 0x00, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d - , 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d - , 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, (byte) 0xb2, (byte) 0xcb, (byte) 0xc3, (byte) 0xfb, 0x09, 0x09, 0x20, 0x20, 0x20, (byte) 0xca, (byte) 0xfd, (byte) 0xc1, (byte) 0xbf, 0x09, 0x20, 0x20 - , 0x20, 0x20, (byte) 0xd0, (byte) 0xa1, (byte) 0xbc, (byte) 0xc6, 0x09, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d - , 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x1b, 0x21, 0x10 - , (byte) 0xba, (byte) 0xec, (byte) 0xc9, (byte) 0xd5, (byte) 0xc8, (byte) 0xe2, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78 - , 0x31, 0x09, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x1d, 0x21, 0x00, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d - , 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d - , 0x2d, 0x2d, 0x0a, (byte) 0xc5, (byte) 0xe4, (byte) 0xcb, (byte) 0xcd, (byte) 0xb7, (byte) 0xd1, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 - , 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, (byte) 0xb2, (byte) 0xcd, (byte) 0xba, (byte) 0xd0, (byte) 0xb7, (byte) 0xd1, 0x20, 0x20 - , 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 - , 0x20, 0x31, 0x0a, 0x5b, (byte) 0xb3, (byte) 0xac, (byte) 0xca, (byte) 0xb1, (byte) 0xc5, (byte) 0xe2, (byte) 0xb8, (byte) 0xb6, 0x5d, 0x20, 0x2d, (byte) 0xcf, (byte) 0xea, (byte) 0xbc, (byte) 0xfb, (byte) 0xb6, (byte) 0xa9, (byte) 0xb5 - , (byte) 0xa5, 0x0a, (byte) 0xbf, (byte) 0xc9, (byte) 0xbf, (byte) 0xda, (byte) 0xbf, (byte) 0xc9, (byte) 0xc0, (byte) 0xd6, 0x3a, 0x78, 0x31, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d - , 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d - , 0x2d, 0x2d, 0x0a, 0x1b, 0x21, 0x10, (byte) 0xba, (byte) 0xcf, (byte) 0xbc, (byte) 0xc6, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 - , 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x38, (byte) 0xd4, (byte) 0xaa, 0x0a, 0x1b, 0x40, 0x2d, 0x2d, 0x2d - , 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d - , 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x1d, 0x21, 0x11, (byte) 0xd5, (byte) 0xc5, 0x2a, 0x20, 0x31, 0x38, 0x33, 0x31, 0x32, 0x33, 0x34 - , 0x35, 0x36, 0x37, 0x38, 0x0a, (byte) 0xb5, (byte) 0xd8, (byte) 0xd6, (byte) 0xb7, (byte) 0xd0, (byte) 0xc5, (byte) 0xcf, (byte) 0xa2, 0x0a, 0x1d, 0x21, 0x00, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d - , 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d - , 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x1b, 0x40, 0x1b, 0x61, 0x01, 0x1d, 0x21, 0x11, (byte) 0xa3, (byte) 0xa3, 0x31, 0x20, 0x20, (byte) 0xc3, (byte) 0xc0 - , (byte) 0xcd, (byte) 0xc5, (byte) 0xb2, (byte) 0xe2, (byte) 0xca, (byte) 0xd4, 0x0a, 0x1d, 0x21, 0x00, 0x1b, 0x40, 0x0a, 0x0a, 0x0a, 0x1d, 0x56, 0x00 - }; - return rv; - } - - /** - * 饿了么小票(Eleme ticket for ESC cmd) - */ - public static byte[] getErlmoData() { - byte[] rv = new byte[]{ - 0x1b, 0x40, 0x1b, 0x61, 0x00, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x20, 0x1d, 0x21, 0x11, 0x23, 0x31, 0x1d, 0x21, 0x00, 0x00, (byte) 0xb6, (byte) 0xf6 - , (byte) 0xc1, (byte) 0xcb, (byte) 0xc3, (byte) 0xb4, (byte) 0xcd, (byte) (byte) 0xe2, (byte) 0xc2, (byte) 0xf4, (byte) 0xb5, (byte) 0xa5, 0x20, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x0a, 0x0a, 0x1b, 0x61 - , 0x01, (byte) 0xbf, (byte) 0xa8, (byte) 0xc8, (byte) 0xf8, (byte) 0xc5, (byte) 0xfb, (byte) 0xc8, (byte) 0xf8, 0x0a, 0x0a, 0x1b, 0x61, 0x00, 0x1b, 0x61, 0x01, 0x1d, 0x21, 0x11, 0x2d, 0x2d - , (byte) 0xd2, (byte) 0xd1, (byte) 0xd6, (byte) 0xa7, (byte) 0xb8, (byte) 0xb6, 0x2d, 0x2d, 0x1d, 0x21, 0x00, 0x00, 0x0a, 0x0a, 0x1b, 0x61, 0x00, 0x1b, 0x61, 0x01, 0x1d, 0x21 - , 0x11, (byte) 0xd4, (byte) 0xa4, (byte) 0xbc, (byte) 0xc6, 0x31, 0x39, 0x3a, 0x30, 0x30, (byte) 0xcb, (byte) 0xcd, (byte) 0xb4, (byte) (byte) 0xef, 0x1d, 0x21, 0x00, 0x00, 0x0a, 0x0a, 0x1b, 0x61 - , 0x00, 0x5b, (byte) 0xcf, (byte) 0xc2, (byte) 0xb5, (byte) 0xa5, (byte) 0xca, (byte) 0xb1, (byte) 0xbc, (byte) (byte) 0xe4, 0x5d, 0x32, 0x30, 0x31, 0x34, 0x2d, 0x31, 0x32, 0x2d, 0x30, 0x33, 0x20 - , 0x31, 0x36, 0x3a, 0x32, 0x31, 0x0a, 0x5b, (byte) 0xb1, (byte) 0xb8, (byte) 0xd7, (byte) 0xa2, 0x5d, 0x1d, 0x21, 0x01, (byte) 0xb2, (byte) 0xbb, (byte) 0xb3, (byte) 0xd4, (byte) 0xc0, (byte) 0xb1, 0x20 - , (byte) 0xc0, (byte) 0xb1, (byte) 0xd2, (byte) 0xbb, (byte) 0xb5, (byte) (byte) 0xe3, 0x20, (byte) 0xb6, (byte) (byte) 0xe0, (byte) 0xbc, (byte) 0xd3, (byte) 0xc3, (byte) 0xd7, 0x20, (byte) 0xc3, (byte) 0xbb, (byte) 0xc1, (byte) (byte) 0xe3, (byte) 0xc7, (byte) 0xae, 0x1d, 0x21 - , 0x00, 0x0a, 0x5b, (byte) 0xb7, (byte) 0xa2, (byte) 0xc6, (byte) 0xb1, 0x5d, (byte) 0xd5, (byte) (byte) 0xe2, (byte) 0xca, (byte) 0xc7, (byte) 0xd2, (byte) 0xbb, (byte) 0xb8, (byte) 0xf6, (byte) 0xb7, (byte) 0xa2, (byte) 0xc6, (byte) 0xb1, (byte) 0xcc, (byte) 0xa7 - , (byte) 0xcd, (byte) 0xb7, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d - , 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, (byte) 0xb2, (byte) 0xcb, (byte) 0xc3, (byte) 0xfb, 0x20, 0x20, 0x20, 0x20 - , 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, (byte) 0xca, (byte) 0xfd, (byte) 0xc1, (byte) 0xbf, 0x20, 0x20, (byte) 0xd0, (byte) 0xa1 - , (byte) 0xbc, (byte) 0xc6, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x20, 0x31, (byte) 0xba, (byte) 0xc5, (byte) 0xc0, (byte) 0xba, (byte) 0xd7, (byte) 0xd3 - , 0x20, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x1d, 0x21, 0x01, (byte) 0xb2, (byte) (byte) 0xe2, (byte) 0xca, (byte) 0xd4, (byte) 0xc3, (byte) 0xc0 - , (byte) 0xca, (byte) 0xb3, (byte) 0xd2, (byte) 0xbb, 0x1d, 0x21, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x1d, 0x21 - , 0x01, 0x20, 0x78, 0x34, 0x1d, 0x21, 0x00, 0x1d, 0x21, 0x01, 0x1d, 0x21, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x1d, 0x21, 0x01, 0x34 - , 0x1d, 0x21, 0x00, 0x0a, 0x1d, 0x21, 0x01, (byte) 0xb2, (byte) (byte) 0xe2, (byte) 0xca, (byte) 0xd4, (byte) 0xc3, (byte) 0xc0, (byte) 0xca, (byte) 0xb3, (byte) 0xb6, (byte) 0xfe, 0x1d, 0x21, 0x00, 0x20, 0x20 - , 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x1d, 0x21, 0x01, 0x20, 0x78, 0x36, 0x1d, 0x21, 0x00, 0x1d, 0x21 - , 0x01, 0x1d, 0x21, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x1d, 0x21, 0x01, 0x36, 0x1d, 0x21, 0x00, 0x0a, 0x1d, 0x21, 0x01, (byte) 0xb2, (byte) (byte) 0xe2 - , (byte) 0xca, (byte) 0xd4, (byte) 0xc3, (byte) 0xc0, (byte) 0xca, (byte) 0xb3, (byte) 0xc8, (byte) 0xfd, 0x1d, 0x21, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 - , 0x20, 0x20, 0x1d, 0x21, 0x01, 0x20, 0x78, 0x32, 0x1d, 0x21, 0x00, 0x1d, 0x21, 0x01, 0x1d, 0x21, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20 - , 0x1d, 0x21, 0x01, 0x32, 0x1d, 0x21, 0x00, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x20, 0x32, (byte) 0xba - , (byte) 0xc5, (byte) 0xc0, (byte) 0xba, (byte) 0xd7, (byte) 0xd3, 0x20, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x1d, 0x21, 0x01, (byte) 0xb2 - , (byte) (byte) 0xe2, (byte) 0xca, (byte) 0xd4, 0x31, 0x1d, 0x21, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 - , 0x20, 0x20, 0x20, 0x1d, 0x21, 0x01, 0x20, 0x78, 0x31, 0x1d, 0x21, 0x00, 0x1d, 0x21, 0x01, 0x1d, 0x21, 0x00, 0x20, 0x20, 0x20, 0x20 - , 0x20, 0x1d, 0x21, 0x01, 0x31, 0x1d, 0x21, 0x00, 0x0a, 0x1d, 0x21, 0x01, (byte) 0xb2, (byte) (byte) 0xe2, (byte) 0xca, (byte) 0xd4, 0x32, 0x1d, 0x21, 0x00, 0x20, 0x20 - , 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x1d, 0x21, 0x01, 0x20, 0x78, 0x31 - , 0x1d, 0x21, 0x00, 0x1d, 0x21, 0x01, 0x1d, 0x21, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x1d, 0x21, 0x01, 0x31, 0x1d, 0x21, 0x00, 0x0a - , 0x1d, 0x21, 0x01, (byte) 0xb2, (byte) (byte) 0xe2, (byte) 0xca, (byte) 0xd4, 0x33, 0x1d, 0x21, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 - , 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x1d, 0x21, 0x01, 0x20, 0x78, 0x31, 0x1d, 0x21, 0x00, 0x1d, 0x21, 0x01, 0x1d, 0x21, 0x00 - , 0x20, 0x20, 0x20, 0x20, 0x1d, 0x21, 0x01, 0x32, 0x33, 0x1d, 0x21, 0x00, 0x0a, 0x1d, 0x21, 0x01, 0x28, 0x2b, 0x29, (byte) 0xb2, (byte) (byte) 0xe2, (byte) 0xca - , (byte) 0xd4, (byte) 0xd1, (byte) 0xf3, (byte) 0xc6, (byte) 0xf8, (byte) 0xa4, (byte) 0xce, (byte) 0xce, (byte) 0xf7, (byte) 0xca, (byte) 0xbd, (byte) 0xcc, (byte) 0xf0, (byte) 0xb5, (byte) (byte) 0xe3, 0x1d, 0x21, 0x00, 0x20, 0x20, 0x1d, 0x21 - , 0x01, 0x20, 0x78, 0x31, 0x1d, 0x21, 0x00, 0x1d, 0x21, 0x01, 0x1d, 0x21, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x1d, 0x21, 0x01, 0x31 - , 0x1d, 0x21, 0x00, 0x0a, 0x1d, 0x21, 0x01, 0x28, 0x2b, 0x29, (byte) 0xb2, (byte) (byte) 0xe2, (byte) 0xca, (byte) 0xd4, (byte) 0xcb, (byte) (byte) 0xe1, (byte) 0xc0, (byte) 0xb1, (byte) 0xc4, (byte) 0xbe, (byte) 0xb6, (byte) 0xfa - , 0x1d, 0x21, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x1d, 0x21, 0x01, 0x20, 0x78, 0x31, 0x1d, 0x21, 0x00, 0x1d, 0x21 - , 0x01, 0x1d, 0x21, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x1d, 0x21, 0x01, 0x38, 0x1d, 0x21, 0x00, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d - , 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x20, 0x33, (byte) 0xba, (byte) 0xc5, (byte) 0xc0, (byte) 0xba, (byte) 0xd7, (byte) 0xd3, 0x20, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d - , 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x1d, 0x21, 0x01, (byte) 0xb2, (byte) (byte) 0xe2, (byte) 0xca, (byte) 0xd4, (byte) 0xb2, (byte) 0xcb, (byte) 0xc6, (byte) 0xb7, (byte) 0xc3, (byte) 0xfb, (byte) 0xd7, (byte) 0xd6, (byte) 0xba, (byte) 0xdc - , (byte) 0xb3, (byte) 0xa4, (byte) 0xba, (byte) 0xdc, (byte) 0xb3, (byte) 0xa4, (byte) 0xba, (byte) 0xdc, (byte) 0xb3, (byte) 0xa4, (byte) 0xba, (byte) 0xdc, (byte) 0xb3, (byte) 0xa4, (byte) 0xba, (byte) 0xdc, (byte) 0xb3, (byte) 0xa4, 0x1d, 0x21, 0x00, 0x0a - , 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 - , 0x20, 0x1d, 0x21, 0x01, 0x20, 0x78, 0x31, 0x1d, 0x21, 0x00, 0x1d, 0x21, 0x01, 0x1d, 0x21, 0x00, 0x20, 0x20, 0x20, 0x1d, 0x21, 0x01 - , 0x33, 0x30, 0x30, 0x1d, 0x21, 0x00, 0x0a, 0x1d, 0x21, 0x01, (byte) 0xb2, (byte) (byte) 0xe2, (byte) 0xca, (byte) 0xd4, 0x1d, 0x21, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20 - , 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x1d, 0x21, 0x01, 0x20, 0x78, 0x31, 0x1d, 0x21 - , 0x00, 0x1d, 0x21, 0x01, 0x1d, 0x21, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x1d, 0x21, 0x01, 0x31, 0x1d, 0x21, 0x00, 0x0a, 0x2d, 0x2d - , 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x20, (byte) 0xc6, (byte) (byte) 0xe4, (byte) 0xcb, (byte) 0xfb, (byte) 0xb7, (byte) 0xd1, (byte) 0xd3, (byte) 0xc3, 0x20, 0x2d, 0x2d, 0x2d - , 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x1d, 0x21, 0x01, (byte) 0xc5, (byte) (byte) 0xe4, (byte) 0xcb, (byte) 0xcd, (byte) 0xb7, (byte) 0xd1, 0x1d, 0x21, 0x00, 0x20 - , 0x20, 0x20, 0x20, 0x20 - }; - return rv; - } - - /** - * 口碑小票(KouBei ticket for ESC cmd) - */ - public static byte[] getKoubeiData() { - byte[] rv = new byte[]{ - 0x1b, 0x40, 0x1b, 0x61, 0x01, 0x1d, 0x21, 0x11, 0x23, 0x34, (byte) 0xbf, (byte) 0xda, (byte) 0xb1, (byte) 0xae, (byte) 0xcd, (byte) 0xe2, - (byte) 0xc2, (byte) 0xf4, 0x0a, 0x1b, 0x40, 0x1b, 0x61, 0x01, 0x1d, 0x21, 0x11, 0x0a, 0x1b, 0x40, 0x1b, 0x61, - 0x01, (byte) 0xb7, (byte) 0xeb, (byte) 0xbc, (byte) 0xc7, (byte) 0xbb, (byte) 0xc6, (byte) 0xec, (byte) 0xcb, (byte) 0xbc, (byte) 0xa6, (byte) 0xc3, (byte) 0xd7, (byte) 0xb7, (byte) 0xb9, 0x0a, - 0x1b, 0x40, 0x1b, 0x61, 0x00, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, - 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, - 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x0a, 0x1b, 0x40, 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x11, 0x31, 0x37, - 0x3a, 0x32, 0x30, 0x20, (byte) 0xbe, (byte) 0xa1, (byte) 0xbf, (byte) 0xec, (byte) 0xcb, (byte) 0xcd, (byte) 0xb4, (byte) 0xef, 0x0a, 0x1b, 0x40, 0x1b, - 0x61, 0x00, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x0a, 0x1b, 0x40, 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x11, 0x31, 0x38, 0x36, 0x31, 0x30, 0x38, - 0x35, 0x38, 0x33, 0x33, 0x37, 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x01, (byte) 0xce, (byte) 0xa4, (byte) 0xd0, (byte) 0xa1, (byte) 0xb1, - (byte) 0xa6, 0x0a, 0x1b, 0x40, 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x11, (byte) 0xb4, (byte) 0xb4, (byte) 0xd6, (byte) 0xc7, (byte) 0xcc, (byte) 0xec, - (byte) 0xb5, (byte) 0xd8, (byte) 0xb9, (byte) 0xe3, (byte) 0xb3, (byte) 0xa1, 0x37, (byte) 0xba, (byte) 0xc5, (byte) 0xc2, (byte) 0xa5, 0x28, 0x36, 0x30, 0x35, (byte) 0xca, - (byte) 0xd2, 0x29, 0x0a, 0x1b, 0x40, 0x1b, 0x61, 0x00, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x1b, 0x40, 0x1b, 0x61, 0x00, 0x1d, 0x21, 0x01, - (byte) 0xcf, (byte) 0xc2, (byte) 0xb5, (byte) 0xa5, (byte) 0xa3, (byte) 0xba, 0x31, 0x36, 0x3a, 0x33, 0x35, 0x0a, 0x1b, 0x40, 0x1b, 0x61, - 0x00, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, - 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, - 0x2a, 0x0a, 0x1b, 0x40, 0x1b, 0x61, 0x00, (byte) 0xb2, (byte) 0xcb, (byte) 0xc6, (byte) 0xb7, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x1b, 0x61, 0x00, (byte) 0xca, (byte) 0xfd, (byte) 0xc1, (byte) 0xbf, 0x1b, 0x61, 0x00, 0x20, - 0x20, (byte) 0xb5, (byte) 0xa5, (byte) 0xbc, (byte) 0xdb, 0x1b, 0x61, 0x00, 0x20, 0x20, (byte) 0xbd, (byte) 0xf0, (byte) 0xb6, (byte) 0xee, 0x0a, 0x1b, - 0x40, 0x1b, 0x61, 0x00, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x0a, 0x1b, 0x40, 0x1b, 0x61, 0x00, (byte) 0xbb, (byte) 0xc6, (byte) 0xec, (byte) 0xcb, (byte) 0xce, (byte) 0xe5, (byte) 0xbb, - (byte) 0xa8, (byte) 0xc8, (byte) 0xe2, (byte) 0xb7, (byte) 0xb9, (byte) 0xa3, (byte) 0xa8, (byte) 0xb4, (byte) 0xf3, (byte) 0xa3, (byte) 0xa9, 0x28, (byte) 0xb2, (byte) 0xbb, (byte) 0xc0, (byte) 0xb1, - 0x29, 0x0a, 0x1b, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x1b, 0x61, 0x00, 0x20, 0x31, 0x20, 0x20, 0x1b, 0x61, 0x00, 0x20, 0x20, 0x20, 0x20, - 0x32, 0x35, 0x1b, 0x61, 0x00, 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, 0x0a, 0x1b, 0x40, 0x1b, 0x61, - 0x00, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x0a, 0x1b, 0x40, 0x1b, 0x61, 0x00, (byte) 0xc5, (byte) 0xe4, (byte) 0xcb, (byte) 0xcd, (byte) 0xb7, (byte) 0xd1, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x1b, 0x61, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x0a, 0x1b, 0x40, 0x1b, 0x61, 0x00, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x1b, 0x40, 0x1b, - 0x61, 0x00, 0x1d, 0x21, 0x01, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, (byte) 0xca, (byte) 0xb5, (byte) 0xb8, (byte) 0xb6, (byte) 0xbd, (byte) 0xf0, (byte) 0xb6, (byte) 0xee, (byte) 0xa3, (byte) 0xba, (byte) 0xa3, - (byte) 0xa4, 0x32, 0x37, 0x0a, 0x1b, 0x40, 0x0a, 0x1b, 0x40, 0x0a, 0x1b, 0x40, 0x1b, 0x61, 0x01, 0x1d, - 0x21, 0x11, (byte) 0xbf, (byte) 0xda, (byte) 0xb1, (byte) 0xae, (byte) 0xcd, (byte) 0xe2, (byte) 0xc2, (byte) 0xf4, 0x0a, 0x1b, 0x40, 0x0a, 0x1b, 0x40, - 0x1d, 0x56, 0x42, 0x0a, 0x0a - }; - return rv; - } - - /** - * 打印机固件自检页 self check - */ - public static byte[] PrintSelfcheck(){ - byte[] bCmd; - - //MS self cmd - bCmd = new byte[]{0x1D,0x28,0x41,0x02,0x00,0x00,0x02}; - - return bCmd; - } - public static final byte GS = 0x1D;// Group separator From 4c9b5d8dee7416b59392fa52e8952ec2d079195d Mon Sep 17 00:00:00 2001 From: "song.chao" Date: Wed, 17 Jan 2024 10:16:11 +0800 Subject: [PATCH 06/24] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=BA=8B=E5=8A=A1?= =?UTF-8?q?=E6=89=93=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../imin_printer/IminPrinterPlugin.java | 69 +- example/lib/pages/v2/home.dart | 16 +- example/lib/pages/v2/transaction_print.dart | 2920 +++++++++++++++++ lib/imin_printer.dart | 10 + lib/imin_printer_method_channel.dart | 18 +- lib/imin_printer_platform_interface.dart | 13 +- test/imin_printer_test.dart | 12 +- 7 files changed, 3008 insertions(+), 50 deletions(-) create mode 100644 example/lib/pages/v2/transaction_print.dart diff --git a/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java b/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java index 8abd073..6c26b1f 100644 --- a/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java +++ b/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java @@ -1051,67 +1051,46 @@ public void onPrintResult(int code, String msg) throws RemoteException { result.success(true); break; case "getPrinterIsUpdateStatus": - if (iminPrintUtils == null) { - result.success(PrinterHelper.getInstance().getPrinterIsUpdateStatus()); - } + // if (iminPrintUtils == null) { + // result.success(PrinterHelper.getInstance().getPrinterIsUpdateStatus()); + // } result.success(true); break; case "enterPrinterBuffer"://进入事务模式 if (iminPrintUtils == null) { - PrinterHelper.getInstance().enterPrinterBuffer(true); + boolean isClean = call.argument("isClean"); + PrinterHelper.getInstance().enterPrinterBuffer(isClean); } result.success(true); break; - - case "printBuffer"://事务打印测试用1,2,3 - if (iminPrintUtils == null) { - int bufferIndex = call.argument("bufferIndex"); - Log.d(TAG, "bufferIndex " + bufferIndex); - if (bufferIndex == 0) { - - PrinterHelper.getInstance().sendRAWData(BytesUtils.getBaiduTestBytes(), null); - } else if (bufferIndex == 1) { - - PrinterHelper.getInstance().sendRAWData(BytesUtils.getErlmoData(), null); - } else if (bufferIndex == 2) { - PrinterHelper.getInstance().sendRAWData(BytesUtils.getMeituanBill(), null); - } - } - result.success(true); - break; - + // case "printBuffer"://事务打印测试用1,2,3 + // if (iminPrintUtils == null) { + // int bufferIndex = call.argument("bufferIndex"); + // Log.d(TAG, "bufferIndex " + bufferIndex); + // if (bufferIndex == 0) { + + // PrinterHelper.getInstance().sendRAWData(BytesUtils.getBaiduTestBytes(), null); + // } else if (bufferIndex == 1) { + + // PrinterHelper.getInstance().sendRAWData(BytesUtils.getErlmoData(), null); + // } else if (bufferIndex == 2) { + // PrinterHelper.getInstance().sendRAWData(BytesUtils.getMeituanBill(), null); + // } + // } + // result.success(true); + // break; case "commitPrinterBuffer"://提交事务打印 if (iminPrintUtils == null) { - PrinterHelper.getInstance().commitPrinterBuffer(new INeoPrinterCallback() { - @Override - public void onRunResult(boolean isSuccess) throws RemoteException { - - } - - @Override - public void onReturnString(String result) throws RemoteException { - - } - - @Override - public void onRaiseException(int code, String msg) throws RemoteException { - - } - - @Override - public void onPrintResult(int code, String msg) throws RemoteException { - // code 0=事务打印成功, 2=事务模式开始发打印数据给打印机 , 其它=打印失败 - Log.d(TAG, "code " + code + " , msg= " + msg); - } - }); + PrinterHelper.getInstance().commitPrinterBuffer(null); } result.success(true); break; case "exitPrinterBuffer"://exit事务模式 if (iminPrintUtils == null) { - PrinterHelper.getInstance().exitPrinterBuffer(true); + boolean isCommit = call.argument("isCommit"); + PrinterHelper.getInstance().exitPrinterBuffer(isCommit); } result.success(true); break; diff --git a/example/lib/pages/v2/home.dart b/example/lib/pages/v2/home.dart index 441ea23..f6c36d1 100644 --- a/example/lib/pages/v2/home.dart +++ b/example/lib/pages/v2/home.dart @@ -10,6 +10,8 @@ import 'package:imin_printer_example/pages/v2/info.dart'; import 'package:imin_printer_example/pages/v2/print_sttings_form.dart'; import 'package:permission_handler/permission_handler.dart'; +import 'transaction_print.dart'; + class NewHome extends StatefulWidget { const NewHome({super.key}); final String title = '打印测试'; @@ -438,7 +440,19 @@ class _NewHomeState extends State { doubleQRSize: 5); }, child: const Text('print DoubleQR'), - ) + ), + OutlinedButton( + onPressed: () async { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => + const TransactionPrintPage()), + ); + }, + child: const Text('transaction printing'), + ), + ], ), ))); diff --git a/example/lib/pages/v2/transaction_print.dart b/example/lib/pages/v2/transaction_print.dart new file mode 100644 index 0000000..ae9783e --- /dev/null +++ b/example/lib/pages/v2/transaction_print.dart @@ -0,0 +1,2920 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:imin_printer/imin_printer.dart'; + +class TransactionPrintPage extends StatefulWidget { + const TransactionPrintPage({super.key}); + + @override + State createState() => _TransactionPrintPageState(); +} + +class _TransactionPrintPageState extends State { + final iminPrinter = IminPrinter(); + bool firstTicket = false; + bool secondTicket = false; + bool thirdlyTicket = false; + @override + void initState() { + super.initState(); + } + + @override + void dispose() { + debugPrint('dispose'); + iminPrinter.exitPrinterBuffer(true); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: const Text('Transaction Print Page'), + ), + body: Column( + children: [ + Row( + children: [ + Expanded( + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Checkbox( + value: firstTicket, + onChanged: (bool? value) async { + setState(() { + firstTicket = value!; + }); + final List firstTicketData = + await getBaiduTestBytes(); + await iminPrinter + .sendRAWData(Uint8List.fromList(firstTicketData)); + }), + const Text('ticket 1') + ], + ), + ), + Expanded( + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Checkbox( + value: secondTicket, + onChanged: (bool? value) async { + setState(() { + secondTicket = value!; + }); + final List secondTicketData = + await getMeituanBill(); + await iminPrinter.sendRAWData( + Uint8List.fromList(secondTicketData)); + }), + const Text('ticket 2') + ], + ), + ), + Expanded( + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Checkbox( + value: thirdlyTicket, + onChanged: (bool? value) async { + setState(() { + thirdlyTicket = value!; + }); + final List thirdlyTicketData = + await getErlmoData(); + await iminPrinter.sendRAWData( + Uint8List.fromList(thirdlyTicketData)); + }), + const Text('ticket 3') + ], + ), + ) + ], + ), + ElevatedButton( + onPressed: () { + iminPrinter.enterPrinterBuffer(true); + }, + child: const Text('start transaction Print'), + ), + ElevatedButton( + onPressed: () { + iminPrinter.commitPrinterBuffer(); + }, + child: const Text('commit transaction'), + ), + ], + ), + ); + } +} + +Future> getBaiduTestBytes() async { + List bytes = [ + 0x1b, + 0x40, + 0x1b, + 0x4d, + 0x00, + 0x1b, + 0x61, + 0x00, + 0x1d, + 0x21, + 0x11, + 0x1b, + 0x45, + 0x00, + 0x1b, + 0x47, + 0x00, + 0x1b, + 0x61, + 0x00, + 0x1b, + 0x45, + 0x01, + 0x1b, + 0x47, + 0x01, + 0xb1, + 0xbe, + 0xb5, + 0xea, + 0xc1, + 0xf4, + 0xb4, + 0xe6, + 0x0a, + 0x1b, + 0x4d, + 0x00, + 0x1b, + 0x61, + 0x00, + 0x1d, + 0x21, + 0x00, + 0x1b, + 0x45, + 0x00, + 0x1b, + 0x47, + 0x00, + 0x1b, + 0x61, + 0x00, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x0a, + 0x1b, + 0x40, + 0x1b, + 0x4d, + 0x00, + 0x1b, + 0x61, + 0x00, + 0x1d, + 0x21, + 0x11, + 0x1b, + 0x45, + 0x00, + 0x1b, + 0x47, + 0x00, + 0x1b, + 0x61, + 0x00, + 0x1b, + 0x45, + 0x01, + 0x1b, + 0x47, + 0x01, + 0x1b, + 0x61, + 0x01, + 0x23, + 0x31, + 0x35, + 0x20, + 0xb0, + 0xd9, + 0xb6, + 0xc8, + 0xcd, + 0xe2, + 0xc2, + 0xf4, + 0x0a, + 0x5b, + 0xbb, + 0xf5, + 0xb5, + 0xbd, + 0xb8, + 0xb6, + 0xbf, + 0xee, + 0x5d, + 0x0a, + 0x1b, + 0x4d, + 0x00, + 0x1b, + 0x61, + 0x00, + 0x1d, + 0x21, + 0x00, + 0x1b, + 0x45, + 0x00, + 0x1b, + 0x47, + 0x00, + 0x1b, + 0x61, + 0x00, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x0a, + 0x1b, + 0x40, + 0x1b, + 0x4d, + 0x00, + 0x1b, + 0x61, + 0x00, + 0x1d, + 0x21, + 0x01, + 0x1b, + 0x45, + 0x00, + 0x1b, + 0x47, + 0x00, + 0x1b, + 0x61, + 0x00, + 0xc6, + 0xda, + 0xcd, + 0xfb, + 0xcb, + 0xcd, + 0xb4, + 0xef, + 0xca, + 0xb1, + 0xbc, + 0xe4, + 0xa3, + 0xba, + 0xc1, + 0xa2, + 0xbc, + 0xb4, + 0xc5, + 0xe4, + 0xcb, + 0xcd, + 0x0a, + 0xb6, + 0xa9, + 0xb5, + 0xa5, + 0xb1, + 0xb8, + 0xd7, + 0xa2, + 0xa3, + 0xba, + 0xc7, + 0xeb, + 0xcb, + 0xcd, + 0xb5, + 0xbd, + 0xbf, + 0xfc, + 0xbf, + 0xc6, + 0xce, + 0xf7, + 0xc3, + 0xc5, + 0x2c, + 0xb2, + 0xbb, + 0xd2, + 0xaa, + 0xc0, + 0xb1, + 0x0a, + 0xb7, + 0xa2, + 0xc6, + 0xb1, + 0xd0, + 0xc5, + 0xcf, + 0xa2, + 0xa3, + 0xba, + 0xb0, + 0xd9, + 0xb6, + 0xc8, + 0xcd, + 0xe2, + 0xc2, + 0xf4, + 0xb7, + 0xa2, + 0xc6, + 0xb1, + 0x0a, + 0x1b, + 0x4d, + 0x00, + 0x1b, + 0x61, + 0x00, + 0x1d, + 0x21, + 0x00, + 0x1b, + 0x45, + 0x00, + 0x1b, + 0x47, + 0x00, + 0x1b, + 0x61, + 0x00, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x0a, + 0x1b, + 0x40, + 0x1b, + 0x4d, + 0x00, + 0x1b, + 0x61, + 0x00, + 0x1d, + 0x21, + 0x00, + 0x1b, + 0x45, + 0x00, + 0x1b, + 0x47, + 0x00, + 0x1b, + 0x61, + 0x00, + 0xb6, + 0xa9, + 0xb5, + 0xa5, + 0xb1, + 0xe0, + 0xba, + 0xc5, + 0xa3, + 0xba, + 0x31, + 0x34, + 0x31, + 0x38, + 0x37, + 0x31, + 0x38, + 0x36, + 0x39, + 0x31, + 0x31, + 0x36, + 0x38, + 0x39, + 0x0a, + 0xcf, + 0xc2, + 0xb5, + 0xa5, + 0xca, + 0xb1, + 0xbc, + 0xe4, + 0xa3, + 0xba, + 0x32, + 0x30, + 0x31, + 0x34, + 0x2d, + 0x31, + 0x32, + 0x2d, + 0x31, + 0x36, + 0x20, + 0x31, + 0x36, + 0x3a, + 0x33, + 0x31, + 0x0a, + 0x1b, + 0x4d, + 0x00, + 0x1b, + 0x61, + 0x00, + 0x1d, + 0x21, + 0x00, + 0x1b, + 0x45, + 0x00, + 0x1b, + 0x47, + 0x00, + 0x1b, + 0x61, + 0x00, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x0a, + 0x1b, + 0x40, + 0x1b, + 0x4d, + 0x00, + 0x1b, + 0x61, + 0x00, + 0x1d, + 0x21, + 0x01, + 0x1b, + 0x45, + 0x00, + 0x1b, + 0x47, + 0x00, + 0x1b, + 0x61, + 0x00, + 0xb2, + 0xcb, + 0xc6, + 0xb7, + 0xc3, + 0xfb, + 0xb3, + 0xc6, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0xca, + 0xfd, + 0xc1, + 0xbf, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0xbd, + 0xf0, + 0xb6, + 0xee, + 0x0a, + 0x1b, + 0x4d, + 0x00, + 0x1b, + 0x61, + 0x00, + 0x1d, + 0x21, + 0x00, + 0x1b, + 0x45, + 0x00, + 0x1b, + 0x47, + 0x00, + 0x1b, + 0x61, + 0x00, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x0a, + 0x1b, + 0x4d, + 0x00, + 0x1b, + 0x61, + 0x00, + 0x1d, + 0x21, + 0x01, + 0x1b, + 0x45, + 0x00, + 0x1b, + 0x47, + 0x00, + 0x1b, + 0x61, + 0x00, + 0xcf, + 0xe3, + 0xc0, + 0xb1, + 0xc3, + 0xe6, + 0xcc, + 0xd7, + 0xb2, + 0xcd, + 0x1b, + 0x24, + 0xf2, + 0x00, + 0x31, + 0x1b, + 0x24, + 0x25, + 0x01, + 0xa3, + 0xa4, + 0x34, + 0x30, + 0x2e, + 0x30, + 0x30, + 0x0a, + 0x1b, + 0x4d, + 0x00, + 0x1b, + 0x61, + 0x00, + 0x1d, + 0x21, + 0x00, + 0x1b, + 0x45, + 0x00, + 0x1b, + 0x47, + 0x00, + 0x1b, + 0x61, + 0x00, + 0x1b, + 0x4d, + 0x00, + 0x1b, + 0x61, + 0x00, + 0x1d, + 0x21, + 0x00, + 0x1b, + 0x45, + 0x00, + 0x1b, + 0x47, + 0x00, + 0x1b, + 0x61, + 0x00, + 0x1b, + 0x4d, + 0x00, + 0x1b, + 0x61, + 0x00, + 0x1d, + 0x21, + 0x01, + 0x1b, + 0x45, + 0x00, + 0x1b, + 0x47, + 0x00, + 0x1b, + 0x61, + 0x00, + 0xcb, + 0xd8, + 0xca, + 0xb3, + 0xcc, + 0xec, + 0xcf, + 0xc2, + 0xba, + 0xba, + 0xb1, + 0xa4, + 0x1b, + 0x24, + 0xf2, + 0x00, + 0x31, + 0x1b, + 0x24, + 0x25, + 0x01, + 0xa3, + 0xa4, + 0x33, + 0x38, + 0x2e, + 0x30, + 0x30, + 0x0a, + 0x1b, + 0x4d, + 0x00, + 0x1b, + 0x61, + 0x00, + 0x1d, + 0x21, + 0x00, + 0x1b, + 0x45, + 0x00, + 0x1b, + 0x47, + 0x00, + 0x1b, + 0x61, + 0x00, + 0x1b, + 0x4d, + 0x00, + 0x1b, + 0x61, + 0x00, + 0x1d, + 0x21, + 0x00, + 0x1b, + 0x45, + 0x00, + 0x1b, + 0x47, + 0x00, + 0x1b, + 0x61, + 0x00, + 0x1b, + 0x40, + 0x1b, + 0x4d, + 0x00, + 0x1b, + 0x61, + 0x00, + 0x1d, + 0x21, + 0x00, + 0x1b, + 0x45, + 0x00, + 0x1b, + 0x47, + 0x00, + 0x1b, + 0x61, + 0x00, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x0a, + 0x1b, + 0x40, + 0x1b, + 0x4d, + 0x00, + 0x1b, + 0x61, + 0x00, + 0x1d, + 0x21, + 0x00, + 0x1b, + 0x45, + 0x00, + 0x1b, + 0x47, + 0x00, + 0x1b, + 0x61, + 0x00, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x0a, + 0x1b, + 0x4d, + 0x00, + 0x1b, + 0x61, + 0x00, + 0x1d, + 0x21, + 0x01, + 0x1b, + 0x45, + 0x00, + 0x1b, + 0x47, + 0x00, + 0x1b, + 0x61, + 0x00, + 0xd0, + 0xd5, + 0xc3, + 0xfb, + 0xa3, + 0xba, + 0xb0, + 0xd9, + 0xb6, + 0xc8, + 0xb2, + 0xe2, + 0xca, + 0xd4, + 0x0a, + 0xb5, + 0xd8, + 0xd6, + 0xb7, + 0xa3, + 0xba, + 0xbf, + 0xfc, + 0xbf, + 0xc6, + 0xbf, + 0xc6, + 0xbc, + 0xbc, + 0xb4, + 0xf3, + 0xcf, + 0xc3, + 0x0a, + 0xb5, + 0xe7, + 0xbb, + 0xb0, + 0xa3, + 0xba, + 0x31, + 0x38, + 0x37, + 0x30, + 0x30, + 0x30, + 0x30, + 0x30, + 0x30, + 0x30, + 0x30, + 0x0a, + 0x1b, + 0x40, + 0x1b, + 0x4d, + 0x00, + 0x1b, + 0x61, + 0x00, + 0x1d, + 0x21, + 0x00, + 0x1b, + 0x45, + 0x00, + 0x1b, + 0x47, + 0x00, + 0x1b, + 0x61, + 0x00, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x0a, + 0xb0, + 0xd9, + 0xb6, + 0xc8, + 0xb2, + 0xe2, + 0xca, + 0xd4, + 0xc9, + 0xcc, + 0xbb, + 0xa7, + 0x0a, + 0x31, + 0x38, + 0x37, + 0x30, + 0x30, + 0x30, + 0x30, + 0x30, + 0x30, + 0x30, + 0x0a, + 0x1b, + 0x4d, + 0x00, + 0x1b, + 0x61, + 0x00, + 0x1d, + 0x21, + 0x00, + 0x1b, + 0x45, + 0x00, + 0x1b, + 0x47, + 0x00, + 0x1b, + 0x61, + 0x00, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x0a, + 0x1b, + 0x4d, + 0x00, + 0x1b, + 0x61, + 0x00, + 0x1d, + 0x21, + 0x00, + 0x1b, + 0x45, + 0x00, + 0x1b, + 0x47, + 0x00, + 0x1b, + 0x61, + 0x00, + 0x1b, + 0x61, + 0x01, + 0x23, + 0x31, + 0x35, + 0x20, + 0xb0, + 0xd9, + 0xb6, + 0xc8, + 0xcd, + 0xe2, + 0xc2, + 0xf4, + 0x20, + 0x20, + 0x31, + 0x31, + 0xd4, + 0xc2, + 0x30, + 0x39, + 0xc8, + 0xd5, + 0x20, + 0x31, + 0x37, + 0x3a, + 0x35, + 0x30, + 0x3a, + 0x33, + 0x30, + 0x0a, + 0x0a, + 0x0a, + 0x0a, + 0x0a + ]; + return bytes; +} + +Future> getMeituanBill() async { + List bytes = [ + 0x1b, + 0x40, + 0x1b, + 0x61, + 0x01, + 0x1d, + 0x21, + 0x11, + 0xa3, + 0xa3, + 0x31, + 0x20, + 0x20, + 0xc3, + 0xc0, + 0xcd, + 0xc5, + 0xb2, + 0xe2, + 0xca, + 0xd4, + 0x0a, + 0x0a, + 0x1d, + 0x21, + 0x00, + 0xd4, + 0xc1, + 0xcf, + 0xe3, + 0xb8, + 0xdb, + 0xca, + 0xbd, + 0xc9, + 0xd5, + 0xc0, + 0xb0, + 0x28, + 0xb5, + 0xda, + 0x31, + 0xc1, + 0xaa, + 0x29, + 0x0a, + 0x1b, + 0x21, + 0x10, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x0a, + 0x2a, + 0x20, + 0x2a, + 0x20, + 0x2a, + 0x20, + 0x2a, + 0x20, + 0x2a, + 0x20, + 0x2a, + 0x20, + 0x20, + 0xd4, + 0xa4, + 0xb6, + 0xa9, + 0xb5, + 0xa5, + 0x20, + 0x20, + 0x2a, + 0x20, + 0x2a, + 0x20, + 0x2a, + 0x20, + 0x2a, + 0x20, + 0x2a, + 0x20, + 0x2a, + 0x0a, + 0xc6, + 0xda, + 0xcd, + 0xfb, + 0xcb, + 0xcd, + 0xb4, + 0xef, + 0xca, + 0xb1, + 0xbc, + 0xe4, + 0x3a, + 0x20, + 0x5b, + 0x31, + 0x38, + 0x3a, + 0x30, + 0x30, + 0x5d, + 0x0a, + 0x1d, + 0x21, + 0x00, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x0a, + 0x1b, + 0x61, + 0x00, + 0xcf, + 0xc2, + 0xb5, + 0xa5, + 0xca, + 0xb1, + 0xbc, + 0xe4, + 0x3a, + 0x30, + 0x31, + 0x2d, + 0x30, + 0x31, + 0x20, + 0x31, + 0x32, + 0x3a, + 0x30, + 0x30, + 0x0a, + 0x1b, + 0x21, + 0x10, + 0xb1, + 0xb8, + 0xd7, + 0xa2, + 0x3a, + 0xb1, + 0xf0, + 0xcc, + 0xab, + 0xc0, + 0xb1, + 0x0a, + 0x1d, + 0x21, + 0x00, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x0a, + 0xb2, + 0xcb, + 0xc3, + 0xfb, + 0x09, + 0x09, + 0x20, + 0x20, + 0x20, + 0xca, + 0xfd, + 0xc1, + 0xbf, + 0x09, + 0x20, + 0x20, + 0x20, + 0x20, + 0xd0, + 0xa1, + 0xbc, + 0xc6, + 0x09, + 0x0a, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x0a, + 0x1b, + 0x21, + 0x10, + 0xba, + 0xec, + 0xc9, + 0xd5, + 0xc8, + 0xe2, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x78, + 0x31, + 0x09, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x31, + 0x32, + 0x0a, + 0x1d, + 0x21, + 0x00, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x0a, + 0xc5, + 0xe4, + 0xcb, + 0xcd, + 0xb7, + 0xd1, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x35, + 0x0a, + 0xb2, + 0xcd, + 0xba, + 0xd0, + 0xb7, + 0xd1, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x31, + 0x0a, + 0x5b, + 0xb3, + 0xac, + 0xca, + 0xb1, + 0xc5, + 0xe2, + 0xb8, + 0xb6, + 0x5d, + 0x20, + 0x2d, + 0xcf, + 0xea, + 0xbc, + 0xfb, + 0xb6, + 0xa9, + 0xb5, + 0xa5, + 0x0a, + 0xbf, + 0xc9, + 0xbf, + 0xda, + 0xbf, + 0xc9, + 0xc0, + 0xd6, + 0x3a, + 0x78, + 0x31, + 0x0a, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x0a, + 0x1b, + 0x21, + 0x10, + 0xba, + 0xcf, + 0xbc, + 0xc6, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x31, + 0x38, + 0xd4, + 0xaa, + 0x0a, + 0x1b, + 0x40, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x0a, + 0x1d, + 0x21, + 0x11, + 0xd5, + 0xc5, + 0x2a, + 0x20, + 0x31, + 0x38, + 0x33, + 0x31, + 0x32, + 0x33, + 0x34, + 0x35, + 0x36, + 0x37, + 0x38, + 0x0a, + 0xb5, + 0xd8, + 0xd6, + 0xb7, + 0xd0, + 0xc5, + 0xcf, + 0xa2, + 0x0a, + 0x1d, + 0x21, + 0x00, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x0a, + 0x0a, + 0x1b, + 0x40, + 0x1b, + 0x61, + 0x01, + 0x1d, + 0x21, + 0x11, + 0xa3, + 0xa3, + 0x31, + 0x20, + 0x20, + 0xc3, + 0xc0, + 0xcd, + 0xc5, + 0xb2, + 0xe2, + 0xca, + 0xd4, + 0x0a, + 0x1d, + 0x21, + 0x00, + 0x1b, + 0x40, + 0x0a, + 0x0a, + 0x0a, + 0x1d, + 0x56, + 0x00 + ]; + return bytes; +} + +Future> getErlmoData() async { + List bytes = [ + 0x1b, + 0x40, + 0x1b, + 0x61, + 0x00, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x20, + 0x1d, + 0x21, + 0x11, + 0x23, + 0x31, + 0x1d, + 0x21, + 0x00, + 0x00, + 0xb6, + 0xf6, + 0xc1, + 0xcb, + 0xc3, + 0xb4, + 0xcd, + 0xe2, + 0xc2, + 0xf4, + 0xb5, + 0xa5, + 0x20, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x2a, + 0x0a, + 0x0a, + 0x1b, + 0x61, + 0x01, + 0xbf, + 0xa8, + 0xc8, + 0xf8, + 0xc5, + 0xfb, + 0xc8, + 0xf8, + 0x0a, + 0x0a, + 0x1b, + 0x61, + 0x00, + 0x1b, + 0x61, + 0x01, + 0x1d, + 0x21, + 0x11, + 0x2d, + 0x2d, + 0xd2, + 0xd1, + 0xd6, + 0xa7, + 0xb8, + 0xb6, + 0x2d, + 0x2d, + 0x1d, + 0x21, + 0x00, + 0x00, + 0x0a, + 0x0a, + 0x1b, + 0x61, + 0x00, + 0x1b, + 0x61, + 0x01, + 0x1d, + 0x21, + 0x11, + 0xd4, + 0xa4, + 0xbc, + 0xc6, + 0x31, + 0x39, + 0x3a, + 0x30, + 0x30, + 0xcb, + 0xcd, + 0xb4, + 0xef, + 0x1d, + 0x21, + 0x00, + 0x00, + 0x0a, + 0x0a, + 0x1b, + 0x61, + 0x00, + 0x5b, + 0xcf, + 0xc2, + 0xb5, + 0xa5, + 0xca, + 0xb1, + 0xbc, + 0xe4, + 0x5d, + 0x32, + 0x30, + 0x31, + 0x34, + 0x2d, + 0x31, + 0x32, + 0x2d, + 0x30, + 0x33, + 0x20, + 0x31, + 0x36, + 0x3a, + 0x32, + 0x31, + 0x0a, + 0x5b, + 0xb1, + 0xb8, + 0xd7, + 0xa2, + 0x5d, + 0x1d, + 0x21, + 0x01, + 0xb2, + 0xbb, + 0xb3, + 0xd4, + 0xc0, + 0xb1, + 0x20, + 0xc0, + 0xb1, + 0xd2, + 0xbb, + 0xb5, + 0xe3, + 0x20, + 0xb6, + 0xe0, + 0xbc, + 0xd3, + 0xc3, + 0xd7, + 0x20, + 0xc3, + 0xbb, + 0xc1, + 0xe3, + 0xc7, + 0xae, + 0x1d, + 0x21, + 0x00, + 0x0a, + 0x5b, + 0xb7, + 0xa2, + 0xc6, + 0xb1, + 0x5d, + 0xd5, + 0xe2, + 0xca, + 0xc7, + 0xd2, + 0xbb, + 0xb8, + 0xf6, + 0xb7, + 0xa2, + 0xc6, + 0xb1, + 0xcc, + 0xa7, + 0xcd, + 0xb7, + 0x0a, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x0a, + 0xb2, + 0xcb, + 0xc3, + 0xfb, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0xca, + 0xfd, + 0xc1, + 0xbf, + 0x20, + 0x20, + 0xd0, + 0xa1, + 0xbc, + 0xc6, + 0x0a, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x20, + 0x31, + 0xba, + 0xc5, + 0xc0, + 0xba, + 0xd7, + 0xd3, + 0x20, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x0a, + 0x1d, + 0x21, + 0x01, + 0xb2, + 0xe2, + 0xca, + 0xd4, + 0xc3, + 0xc0, + 0xca, + 0xb3, + 0xd2, + 0xbb, + 0x1d, + 0x21, + 0x00, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x1d, + 0x21, + 0x01, + 0x20, + 0x78, + 0x34, + 0x1d, + 0x21, + 0x00, + 0x1d, + 0x21, + 0x01, + 0x1d, + 0x21, + 0x00, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x1d, + 0x21, + 0x01, + 0x34, + 0x1d, + 0x21, + 0x00, + 0x0a, + 0x1d, + 0x21, + 0x01, + 0xb2, + 0xe2, + 0xca, + 0xd4, + 0xc3, + 0xc0, + 0xca, + 0xb3, + 0xb6, + 0xfe, + 0x1d, + 0x21, + 0x00, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x1d, + 0x21, + 0x01, + 0x20, + 0x78, + 0x36, + 0x1d, + 0x21, + 0x00, + 0x1d, + 0x21, + 0x01, + 0x1d, + 0x21, + 0x00, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x1d, + 0x21, + 0x01, + 0x36, + 0x1d, + 0x21, + 0x00, + 0x0a, + 0x1d, + 0x21, + 0x01, + 0xb2, + 0xe2, + 0xca, + 0xd4, + 0xc3, + 0xc0, + 0xca, + 0xb3, + 0xc8, + 0xfd, + 0x1d, + 0x21, + 0x00, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x1d, + 0x21, + 0x01, + 0x20, + 0x78, + 0x32, + 0x1d, + 0x21, + 0x00, + 0x1d, + 0x21, + 0x01, + 0x1d, + 0x21, + 0x00, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x1d, + 0x21, + 0x01, + 0x32, + 0x1d, + 0x21, + 0x00, + 0x0a, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x20, + 0x32, + 0xba, + 0xc5, + 0xc0, + 0xba, + 0xd7, + 0xd3, + 0x20, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x0a, + 0x1d, + 0x21, + 0x01, + 0xb2, + 0xe2, + 0xca, + 0xd4, + 0x31, + 0x1d, + 0x21, + 0x00, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x1d, + 0x21, + 0x01, + 0x20, + 0x78, + 0x31, + 0x1d, + 0x21, + 0x00, + 0x1d, + 0x21, + 0x01, + 0x1d, + 0x21, + 0x00, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x1d, + 0x21, + 0x01, + 0x31, + 0x1d, + 0x21, + 0x00, + 0x0a, + 0x1d, + 0x21, + 0x01, + 0xb2, + 0xe2, + 0xca, + 0xd4, + 0x32, + 0x1d, + 0x21, + 0x00, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x1d, + 0x21, + 0x01, + 0x20, + 0x78, + 0x31, + 0x1d, + 0x21, + 0x00, + 0x1d, + 0x21, + 0x01, + 0x1d, + 0x21, + 0x00, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x1d, + 0x21, + 0x01, + 0x31, + 0x1d, + 0x21, + 0x00, + 0x0a, + 0x1d, + 0x21, + 0x01, + 0xb2, + 0xe2, + 0xca, + 0xd4, + 0x33, + 0x1d, + 0x21, + 0x00, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x1d, + 0x21, + 0x01, + 0x20, + 0x78, + 0x31, + 0x1d, + 0x21, + 0x00, + 0x1d, + 0x21, + 0x01, + 0x1d, + 0x21, + 0x00, + 0x20, + 0x20, + 0x20, + 0x20, + 0x1d, + 0x21, + 0x01, + 0x32, + 0x33, + 0x1d, + 0x21, + 0x00, + 0x0a, + 0x1d, + 0x21, + 0x01, + 0x28, + 0x2b, + 0x29, + 0xb2, + 0xe2, + 0xca, + 0xd4, + 0xd1, + 0xf3, + 0xc6, + 0xf8, + 0xa4, + 0xce, + 0xce, + 0xf7, + 0xca, + 0xbd, + 0xcc, + 0xf0, + 0xb5, + 0xe3, + 0x1d, + 0x21, + 0x00, + 0x20, + 0x20, + 0x1d, + 0x21, + 0x01, + 0x20, + 0x78, + 0x31, + 0x1d, + 0x21, + 0x00, + 0x1d, + 0x21, + 0x01, + 0x1d, + 0x21, + 0x00, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x1d, + 0x21, + 0x01, + 0x31, + 0x1d, + 0x21, + 0x00, + 0x0a, + 0x1d, + 0x21, + 0x01, + 0x28, + 0x2b, + 0x29, + 0xb2, + 0xe2, + 0xca, + 0xd4, + 0xcb, + 0xe1, + 0xc0, + 0xb1, + 0xc4, + 0xbe, + 0xb6, + 0xfa, + 0x1d, + 0x21, + 0x00, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x1d, + 0x21, + 0x01, + 0x20, + 0x78, + 0x31, + 0x1d, + 0x21, + 0x00, + 0x1d, + 0x21, + 0x01, + 0x1d, + 0x21, + 0x00, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x1d, + 0x21, + 0x01, + 0x38, + 0x1d, + 0x21, + 0x00, + 0x0a, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x20, + 0x33, + 0xba, + 0xc5, + 0xc0, + 0xba, + 0xd7, + 0xd3, + 0x20, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x0a, + 0x1d, + 0x21, + 0x01, + 0xb2, + 0xe2, + 0xca, + 0xd4, + 0xb2, + 0xcb, + 0xc6, + 0xb7, + 0xc3, + 0xfb, + 0xd7, + 0xd6, + 0xba, + 0xdc, + 0xb3, + 0xa4, + 0xba, + 0xdc, + 0xb3, + 0xa4, + 0xba, + 0xdc, + 0xb3, + 0xa4, + 0xba, + 0xdc, + 0xb3, + 0xa4, + 0xba, + 0xdc, + 0xb3, + 0xa4, + 0x1d, + 0x21, + 0x00, + 0x0a, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x1d, + 0x21, + 0x01, + 0x20, + 0x78, + 0x31, + 0x1d, + 0x21, + 0x00, + 0x1d, + 0x21, + 0x01, + 0x1d, + 0x21, + 0x00, + 0x20, + 0x20, + 0x20, + 0x1d, + 0x21, + 0x01, + 0x33, + 0x30, + 0x30, + 0x1d, + 0x21, + 0x00, + 0x0a, + 0x1d, + 0x21, + 0x01, + 0xb2, + 0xe2, + 0xca, + 0xd4, + 0x1d, + 0x21, + 0x00, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x1d, + 0x21, + 0x01, + 0x20, + 0x78, + 0x31, + 0x1d, + 0x21, + 0x00, + 0x1d, + 0x21, + 0x01, + 0x1d, + 0x21, + 0x00, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x1d, + 0x21, + 0x01, + 0x31, + 0x1d, + 0x21, + 0x00, + 0x0a, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x20, + 0xc6, + 0xe4, + 0xcb, + 0xfb, + 0xb7, + 0xd1, + 0xd3, + 0xc3, + 0x20, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x2d, + 0x0a, + 0x1d, + 0x21, + 0x01, + 0xc5, + 0xe4, + 0xcb, + 0xcd, + 0xb7, + 0xd1, + 0x1d, + 0x21, + 0x00, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20 + ]; + return bytes; +} diff --git a/lib/imin_printer.dart b/lib/imin_printer.dart index 9aa9dc2..18e1303 100644 --- a/lib/imin_printer.dart +++ b/lib/imin_printer.dart @@ -659,4 +659,14 @@ class IminPrinter { Future printColumnsString({required List cols}) { return IminPrinterPlatform.instance.printColumnsString(cols: cols); } + Future enterPrinterBuffer(bool isClean) { + return IminPrinterPlatform.instance.enterPrinterBuffer(isClean); + } + Future commitPrinterBuffer() { + return IminPrinterPlatform.instance.commitPrinterBuffer(); + } + Future exitPrinterBuffer(bool isCommit) { + return IminPrinterPlatform.instance.exitPrinterBuffer(isCommit); + } + } diff --git a/lib/imin_printer_method_channel.dart b/lib/imin_printer_method_channel.dart index b5e1732..5cd3cdc 100644 --- a/lib/imin_printer_method_channel.dart +++ b/lib/imin_printer_method_channel.dart @@ -20,7 +20,7 @@ class MethodChannelIminPrinter extends IminPrinterPlatform { @override Future listenerEvent(dynamic onEvent, {dynamic onError}) async { - eventChannel.receiveBroadcastStream().listen(onEvent,onError: onError); + eventChannel.receiveBroadcastStream().listen(onEvent, onError: onError); } @override @@ -768,4 +768,20 @@ class MethodChannelIminPrinter extends IminPrinterPlatform { }; await methodChannel.invokeMethod('printColumnsString', arguments); } + + @override + Future enterPrinterBuffer(bool isClean) async { + Map arguments = {"isClean": isClean}; + await methodChannel.invokeMethod('enterPrinterBuffer', arguments); + } + + @override + Future commitPrinterBuffer() async { + await methodChannel.invokeMethod('commitPrinterBuffer'); + } + @override + Future exitPrinterBuffer(bool isCommit) async { + Map arguments = {"isCommit": isCommit }; + await methodChannel.invokeMethod('exitPrinterBuffer', arguments); + } } diff --git a/lib/imin_printer_platform_interface.dart b/lib/imin_printer_platform_interface.dart index b50a7c9..a3fcc2f 100644 --- a/lib/imin_printer_platform_interface.dart +++ b/lib/imin_printer_platform_interface.dart @@ -29,8 +29,9 @@ abstract class IminPrinterPlatform extends PlatformInterface { } Future listenerEvent(dynamic onEvent, {dynamic onError}) { - throw UnimplementedError('listenerEvent() has not been implemented.'); + throw UnimplementedError('listenerEvent() has not been implemented.'); } + Future getUseSdkVersion() { throw UnimplementedError('getUseSdkVersion() has not been implemented.'); } @@ -348,4 +349,14 @@ abstract class IminPrinterPlatform extends PlatformInterface { Future printColumnsString({required List cols}) { throw UnimplementedError('printColumnsString() has not been implemented.'); } + + Future enterPrinterBuffer(bool isClean) { + throw UnimplementedError('enterPrinterBuffer() has not been implemented.'); + } + Future commitPrinterBuffer() { + throw UnimplementedError('commitPrinterBuffer() has not been implemented.'); + } + Future exitPrinterBuffer(bool isCommit) { + throw UnimplementedError('exitPrinterBuffer() has not been implemented.'); + } } diff --git a/test/imin_printer_test.dart b/test/imin_printer_test.dart index 9b163b6..ea5b54e 100644 --- a/test/imin_printer_test.dart +++ b/test/imin_printer_test.dart @@ -13,13 +13,15 @@ class MockIminPrinterPlatform with MockPlatformInterfaceMixin implements IminPrinterPlatform { @override - Future listenerEvent(dynamic onEvent, {dynamic onError}) => Future.value(); + Future listenerEvent(dynamic onEvent, {dynamic onError}) => + Future.value(); @override Future getUseSdkVersion() => Future.value(true); @override Future initPrinter() => Future.value(true); @override - Future> getPrinterStatus() => Future.value({"code": 0, "msg": 'sdsd'}); + Future> getPrinterStatus() => + Future.value({"code": 0, "msg": 'sdsd'}); @override Future setTextSize(int size) => Future.value(); @override @@ -184,6 +186,12 @@ class MockIminPrinterPlatform @override Future printColumnsString({required List cols}) => Future.value(); + @override + Future enterPrinterBuffer(bool isClean) => Future.value(); + @override + Future commitPrinterBuffer() => Future.value(); + @override + Future exitPrinterBuffer(bool isCommit) => Future.value(); } void main() { From 53e3c0f1223dd0c005eb9ac01fc4ee955c238054 Mon Sep 17 00:00:00 2001 From: tanbotao Date: Wed, 17 Jan 2024 12:09:02 +0800 Subject: [PATCH 07/24] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=93=8D=E4=BD=9C?= =?UTF-8?q?=E6=89=93=E5=8D=B0=E6=9C=BA=E4=BB=A3=E7=A0=81=E9=A1=B5=E3=80=81?= =?UTF-8?q?=E7=BC=96=E7=A0=81=E3=80=81=E6=B5=93=E5=BA=A6=E3=80=81=E9=80=9F?= =?UTF-8?q?=E5=BA=A6=E3=80=81=E5=AE=BD=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../imin_printer/IminPrinterPlugin.java | 112 ++++++++++++++++-- 1 file changed, 102 insertions(+), 10 deletions(-) diff --git a/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java b/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java index 19557a1..47b4429 100644 --- a/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java +++ b/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java @@ -22,6 +22,7 @@ import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import android.graphics.Typeface; import android.content.Context; @@ -700,6 +701,105 @@ public void run() { } result.success(true); break; + + case "getFontCodepage"://1. codepage + if (iminPrintUtils == null) { + List fontCodepage = PrinterHelper.getInstance().getFontCodepage(); + result.success(fontCodepage); + } + break; + case "setFontCodepage": + if (iminPrintUtils == null) { + int codepage = call.argument("codepage");//从getFontCodepage 列表的脚标(0、1、3...) + PrinterHelper.getInstance().setFontCodepage(codepage); + } + result.success(true); + break; + case "getCurCodepage": + if (iminPrintUtils == null) { + String curCodepage = PrinterHelper.getInstance().getCurCodepage(); + result.success(curCodepage); + } + break; + + case "getEncodeList"://2. encode + if (iminPrintUtils == null) { + List encodeList = PrinterHelper.getInstance().getEncodeList(); + result.success(encodeList); + } + break; + case "setPrinterEncode": + if (iminPrintUtils == null) { + int encode = call.argument("encode"); + PrinterHelper.getInstance().setPrinterEncode(encode); + } + result.success(true); + break; + case "getCurEncode": + if (iminPrintUtils == null) { + String curEncode = PrinterHelper.getInstance().getCurEncode(); + result.success(curEncode); + } + break; + + case "getPrinterDensityList"://3. density + if (iminPrintUtils == null) { + List printerDensityList = PrinterHelper.getInstance().getPrinterDensityList(); + result.success(printerDensityList); + } + break; + case "setPrinterDensity": + if (iminPrintUtils == null) { + int density = call.argument("density"); + PrinterHelper.getInstance().setPrinterDensity(density); + } + result.success(true); + break; + case "getPrinterDensity": + if (iminPrintUtils == null) { + result.success(PrinterHelper.getInstance().getPrinterDensity()); + } + break; + + case "getPrinterSpeedList"://4. speed + if (iminPrintUtils == null) { + List printerSpeedList = PrinterHelper.getInstance().getPrinterSpeedList(); + result.success(printerSpeedList); + } + break; + case "setPrinterSpeed": + if (iminPrintUtils == null) { + int speed = call.argument("speed"); + PrinterHelper.getInstance().setPrinterSpeed(speed); + } + result.success(true); + break; + case "getPrinterSpeedList": + if (iminPrintUtils == null) { + int printerSpeed = PrinterHelper.getInstance().getPrinterSpeed(); + result.success(printerSpeed); + } + break; + + case "getPrinterPaperTypeList"://5. Paper width + if (iminPrintUtils == null) { + List printerPaperTypeList = PrinterHelper.getInstance().getPrinterPaperTypeList(); + result.success(printerPaperTypeList); + } + break; + case "setPageFormat": + if (iminPrintUtils == null) { + int paperType = call.argument("paperType"); + PrinterHelper.getInstance().setPageFormat(paperType); + } + result.success(true); + break; + case "getPrinterPaperType": + if (iminPrintUtils == null) { + result.success(PrinterHelper.getInstance().getPrinterPaperType()); + } + break; + case "getPrinterSerialNumber": if (iminPrintUtils == null) { PrinterHelper.getInstance().getPrinterSerialNumber(new INeoPrinterCallback() { @@ -840,11 +940,7 @@ public void onPrintResult(int code, String msg) throws RemoteException { result.success(PrinterHelper.getInstance().getUsbDevicesName()); } break; - case "getPrinterDensity": - if (iminPrintUtils == null) { - result.success(PrinterHelper.getInstance().getPrinterDensity()); - } - break; + case "getPrinterPaperDistance": if (iminPrintUtils == null) { PrinterHelper.getInstance().getPrinterPaperDistance(new INeoPrinterCallback() { @@ -870,11 +966,7 @@ public void onPrintResult(int code, String msg) throws RemoteException { }); } break; - case "getPrinterPaperType": - if (iminPrintUtils == null) { - result.success(PrinterHelper.getInstance().getPrinterPaperType()); - } - break; + case "getPrinterCutTimes": if (iminPrintUtils == null) { PrinterHelper.getInstance().getPrinterCutTimes(new INeoPrinterCallback() { From 8b96c54d6c6b6c3c7e9affcb9764e3de38d8a45b Mon Sep 17 00:00:00 2001 From: "song.chao" Date: Thu, 18 Jan 2024 18:03:56 +0800 Subject: [PATCH 08/24] =?UTF-8?q?=E6=89=93=E5=8D=B0=E6=96=87=E5=AD=97debug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../imin_printer/IminPrinterPlugin.java | 97 ++----------------- example/lib/pages/v2/print_sttings_form.dart | 42 +++++--- lib/imin_printer.dart | 46 ++++++++- lib/imin_printer_method_channel.dart | 53 +++++++++- lib/imin_printer_platform_interface.dart | 39 ++++++++ test/imin_printer_test.dart | 20 ++++ 6 files changed, 193 insertions(+), 104 deletions(-) diff --git a/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java b/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java index 47b4429..842ec17 100644 --- a/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java +++ b/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java @@ -499,6 +499,8 @@ public void run() { int formatStyle = call.argument("style"); if (iminPrintUtils != null) { iminPrintUtils.setPageFormat(formatStyle); + } else { + PrinterHelper.getInstance().setPageFormat(formatStyle); } result.success(true); break; @@ -534,67 +536,6 @@ public void run() { Log.e("IminPrinter", e.getMessage()); } break; - case "printBarCodeToBitmapFormat": - try { - // String barCodeFormatContent = call.argument("data"); - // int barCodeFormatWidth = call.argument("width"); - // int barCodeFormatHeight = call.argument("height"); - // int barCodeFormat = call.argument("codeFormat"); - // switch (barCodeFormat) { - // case 0: - // iminPrintUtils.printBarCodeToBitmapFormat(barCodeFormatContent, barCodeFormatWidth, barCodeFormatHeight, CodeFormat.AZTEC); - // break; - // case 1: - // iminPrintUtils.printBarCodeToBitmapFormat(barCodeFormatContent, barCodeFormatWidth, barCodeFormatHeight, CodeFormat.CODABAR); - // break; - // case 2: - // iminPrintUtils.printBarCodeToBitmapFormat(barCodeFormatContent, barCodeFormatWidth, barCodeFormatHeight, CodeFormat.CODE_39); - // break; - // case 3: - // iminPrintUtils.printBarCodeToBitmapFormat(barCodeFormatContent, barCodeFormatWidth, barCodeFormatHeight, CodeFormat.CODE_93); - // break; - // case 4: - // iminPrintUtils.printBarCodeToBitmapFormat(barCodeFormatContent, barCodeFormatWidth, barCodeFormatHeight, CodeFormat.CODE_128); - // break; - // case 5: - // iminPrintUtils.printBarCodeToBitmapFormat(barCodeFormatContent, barCodeFormatWidth, barCodeFormatHeight, CodeFormat.DATA_MATRIX); - // break; - // case 6: - // iminPrintUtils.printBarCodeToBitmapFormat(barCodeFormatContent, barCodeFormatWidth, barCodeFormatHeight, CodeFormat.EAN_13); - // break; - // case 7: - // iminPrintUtils.printBarCodeToBitmapFormat(barCodeFormatContent, barCodeFormatWidth, barCodeFormatHeight, CodeFormat.ITF); - // break; - // case 8: - // iminPrintUtils.printBarCodeToBitmapFormat(barCodeFormatContent, barCodeFormatWidth, barCodeFormatHeight, CodeFormat.PDF_417); - // break; - // case 9: - // iminPrintUtils.printBarCodeToBitmapFormat(barCodeFormatContent, barCodeFormatWidth, barCodeFormatHeight, CodeFormat.MAXICODE); - // break; - // case 10: - // iminPrintUtils.printBarCodeToBitmapFormat(barCodeFormatContent, barCodeFormatWidth, barCodeFormatHeight, CodeFormat.QR_CODE); - // break; - // case 11: - // iminPrintUtils.printBarCodeToBitmapFormat(barCodeFormatContent, barCodeFormatWidth, barCodeFormatHeight, CodeFormat.RSS_14); - // break; - // case 12: - // iminPrintUtils.printBarCodeToBitmapFormat(barCodeFormatContent, barCodeFormatWidth, barCodeFormatHeight, CodeFormat.RSS_EXPANDED); - // break; - // case 13: - // iminPrintUtils.printBarCodeToBitmapFormat(barCodeFormatContent, barCodeFormatWidth, barCodeFormatHeight, CodeFormat.UPC_A); - // break; - // case 14: - // iminPrintUtils.printBarCodeToBitmapFormat(barCodeFormatContent, barCodeFormatWidth, barCodeFormatHeight, CodeFormat.UPC_E); - // break; - // case 15: - // iminPrintUtils.printBarCodeToBitmapFormat(barCodeFormatContent, barCodeFormatWidth, barCodeFormatHeight, CodeFormat.UPC_EAN_EXTENSION); - // break; - // } - result.success(true); - } catch (Exception e) { - Log.e("IminPrinter", e.getMessage()); - } - break; case "setDoubleQRSize": int doubleQRSize = call.argument("size"); if (iminPrintUtils != null) { @@ -707,6 +648,7 @@ public void run() { List fontCodepage = PrinterHelper.getInstance().getFontCodepage(); result.success(fontCodepage); } + result.success(true); break; case "setFontCodepage": if (iminPrintUtils == null) { @@ -720,6 +662,7 @@ public void run() { String curCodepage = PrinterHelper.getInstance().getCurCodepage(); result.success(curCodepage); } + result.success(true); break; case "getEncodeList"://2. encode @@ -760,7 +703,6 @@ public void run() { result.success(PrinterHelper.getInstance().getPrinterDensity()); } break; - case "getPrinterSpeedList"://4. speed if (iminPrintUtils == null) { List printerSpeedList = PrinterHelper.getInstance().getPrinterSpeedList(); @@ -774,32 +716,23 @@ public void run() { } result.success(true); break; - case "getPrinterSpeedList": + case "getPrinterSpeed": if (iminPrintUtils == null) { int printerSpeed = PrinterHelper.getInstance().getPrinterSpeed(); result.success(printerSpeed); } break; - case "getPrinterPaperTypeList"://5. Paper width if (iminPrintUtils == null) { List printerPaperTypeList = PrinterHelper.getInstance().getPrinterPaperTypeList(); result.success(printerPaperTypeList); } break; - case "setPageFormat": - if (iminPrintUtils == null) { - int paperType = call.argument("paperType"); - PrinterHelper.getInstance().setPageFormat(paperType); - } - result.success(true); - break; case "getPrinterPaperType": if (iminPrintUtils == null) { result.success(PrinterHelper.getInstance().getPrinterPaperType()); } break; - case "getPrinterSerialNumber": if (iminPrintUtils == null) { PrinterHelper.getInstance().getPrinterSerialNumber(new INeoPrinterCallback() { @@ -1058,6 +991,7 @@ public void onPrintResult(int code, String msg) throws RemoteException { case "setTextBitmapStyle": if (iminPrintUtils == null) { int textBitmapStyle = call.argument("style"); + Log.d("setTextBitmapStyle", "setTextBitmapStyle: " + textBitmapStyle); if (iminPrintUtils != null) { PrinterHelper.getInstance().setTextBitmapStyle(textBitmapStyle); } @@ -1112,6 +1046,9 @@ public void onPrintResult(int code, String msg) throws RemoteException { if (iminPrintUtils == null) { String textBitmapString = call.argument("text"); int textBitmapAlign = call.argument("align"); + Log.d("sdsd","打印文字对齐方式textBitmapString" + textBitmapString); + Log.d("sdsd","打印文字对齐方式textBitmapAlign" + textBitmapAlign); + PrinterHelper.getInstance().printTextBitmapWithAli(textBitmapString, textBitmapAlign, null); } result.success(true); @@ -1179,22 +1116,6 @@ public void onPrintResult(int code, String msg) throws RemoteException { } result.success(true); break; - // case "printBuffer"://事务打印测试用1,2,3 - // if (iminPrintUtils == null) { - // int bufferIndex = call.argument("bufferIndex"); - // Log.d(TAG, "bufferIndex " + bufferIndex); - // if (bufferIndex == 0) { - - // PrinterHelper.getInstance().sendRAWData(BytesUtils.getBaiduTestBytes(), null); - // } else if (bufferIndex == 1) { - - // PrinterHelper.getInstance().sendRAWData(BytesUtils.getErlmoData(), null); - // } else if (bufferIndex == 2) { - // PrinterHelper.getInstance().sendRAWData(BytesUtils.getMeituanBill(), null); - // } - // } - // result.success(true); - // break; case "commitPrinterBuffer"://提交事务打印 if (iminPrintUtils == null) { PrinterHelper.getInstance().commitPrinterBuffer(null); diff --git a/example/lib/pages/v2/print_sttings_form.dart b/example/lib/pages/v2/print_sttings_form.dart index 592e27d..3805d4f 100644 --- a/example/lib/pages/v2/print_sttings_form.dart +++ b/example/lib/pages/v2/print_sttings_form.dart @@ -44,27 +44,40 @@ class _TextSettingComponentState extends State { dynamic align; dynamic typeface; dynamic fontStyle; - final TextEditingController descController = TextEditingController(); - String descriptionCount = ''; + TextEditingController descController = TextEditingController(); + String descriptionCount = + 'iMin advocates the core values of "Integrity, Customer First, Invention&Creation, Patience”, using cloud-based technology to help businesses to get access to the Internet and also increases their data base, by providing more solutions so that their business can take a step further. Through their efficiency enhancement, cost improvement, service innovation, and better services for consumers, these aspect will drives the entire industry development.'; + final focusNode = FocusNode(); String letterSpacing = ''; String lineHeight = ''; String fontSize = ''; @override void initState() { - descController.text = - 'iMin advocates the core values of "Integrity, Customer First, Invention&Creation, Patience”, using cloud-based technology to help businesses to get access to the Internet and also increases their data base, by providing more solutions so that their business can take a step further. Through their efficiency enhancement, cost improvement, service innovation, and better services for consumers, these aspect will drives the entire industry development.'; - descController.selection = - TextSelection(baseOffset: 0, extentOffset: descController.text.length); + descController = TextEditingController.fromValue(TextEditingValue( + text: descriptionCount, + selection: TextSelection.fromPosition( + TextPosition( + offset: descriptionCount.length, + affinity: TextAffinity.downstream), + ))); + focusNode.requestFocus(); + // descController.selection = + // TextSelection(baseOffset: 0, extentOffset: descController.text.length); super.initState(); - init(); + // init(); } - Future init() async { - if (mounted) { - setState(() { - descriptionCount = descController.text; - }); - } + // Future init() async { + // if (mounted) { + // setState(() { + // descriptionCount = descController.text; + // }); + // } + // } + @override + void dispose() { + focusNode.dispose(); // 释放资源 + super.dispose(); } @override @@ -78,10 +91,11 @@ class _TextSettingComponentState extends State { descriptionCount = value; }); }, + focusNode: focusNode, decoration: InputDecoration( hintText: 'Please enter the printed text', prefixIcon: const Icon(Icons.description), - counterText: "${descriptionCount.length}/1000", + counterText: "${descController.text.length}/1000", labelText: "Text"), maxLines: 3, maxLength: 1000, diff --git a/lib/imin_printer.dart b/lib/imin_printer.dart index 18e1303..ff4e478 100644 --- a/lib/imin_printer.dart +++ b/lib/imin_printer.dart @@ -10,8 +10,10 @@ var logger = Logger(); class IminPrinter { Future listenerEvent(dynamic onEvent, {dynamic onError}) { - return IminPrinterPlatform.instance.listenerEvent(onEvent, onError: onEvent ); + return IminPrinterPlatform.instance + .listenerEvent(onEvent, onError: onEvent); } + /// Get what version of sdk is the current device using /// /// {@tool snippet} @@ -659,14 +661,56 @@ class IminPrinter { Future printColumnsString({required List cols}) { return IminPrinterPlatform.instance.printColumnsString(cols: cols); } + Future enterPrinterBuffer(bool isClean) { return IminPrinterPlatform.instance.enterPrinterBuffer(isClean); } + Future commitPrinterBuffer() { return IminPrinterPlatform.instance.commitPrinterBuffer(); } + Future exitPrinterBuffer(bool isCommit) { return IminPrinterPlatform.instance.exitPrinterBuffer(isCommit); } + Future?> getFontCodepage() { + return IminPrinterPlatform.instance.getFontCodepage(); + } + + Future setFontCodepage(int codepage) { + return IminPrinterPlatform.instance.setFontCodepage(codepage); + } + + Future getCurCodepage() { + return IminPrinterPlatform.instance.getCurCodepage(); + } + + Future?> getEncodeList() { + return IminPrinterPlatform.instance.getEncodeList(); + } + + Future getCurEncode() { + return IminPrinterPlatform.instance.getCurEncode(); + } + + Future?> getPrinterDensityList() { + return IminPrinterPlatform.instance.getPrinterDensityList(); + } + + Future?> getPrinterSpeedList() { + return IminPrinterPlatform.instance.getPrinterSpeedList(); + } + + Future setPrinterSpeed(int speed) { + return IminPrinterPlatform.instance.setPrinterSpeed(speed); + } + + Future getPrinterSpeed() { + return IminPrinterPlatform.instance.getPrinterSpeed(); + } + + Future?> getPrinterPaperTypeList() { + return IminPrinterPlatform.instance.getPrinterPaperTypeList(); + } } diff --git a/lib/imin_printer_method_channel.dart b/lib/imin_printer_method_channel.dart index 5cd3cdc..26cff5f 100644 --- a/lib/imin_printer_method_channel.dart +++ b/lib/imin_printer_method_channel.dart @@ -779,9 +779,60 @@ class MethodChannelIminPrinter extends IminPrinterPlatform { Future commitPrinterBuffer() async { await methodChannel.invokeMethod('commitPrinterBuffer'); } + @override Future exitPrinterBuffer(bool isCommit) async { - Map arguments = {"isCommit": isCommit }; + Map arguments = {"isCommit": isCommit}; await methodChannel.invokeMethod('exitPrinterBuffer', arguments); } + + @override + Future?> getFontCodepage() async { + return await methodChannel.invokeMethod>('getFontCodepage'); + } + + @override + Future setFontCodepage(int codepage) async { + Map arguments = {"codepage": codepage}; + return await methodChannel.invokeMethod('setFontCodepage', arguments); + } + + @override + Future getCurCodepage() async { + return await methodChannel.invokeMethod('getCurCodepage'); + } + + @override + Future?> getEncodeList() async { + return await methodChannel.invokeMethod>('getEncodeList'); + } + + @override + Future?> getPrinterDensityList() async { + return await methodChannel + .invokeMethod>('getPrinterDensityList'); + } + + @override + Future?> getPrinterSpeedList() async { + return await methodChannel + .invokeMethod>('getPrinterSpeedList'); + } + + @override + Future setPrinterSpeed(int speed) async { + Map arguments = {"speed": speed}; + await methodChannel.invokeMethod('setPrinterSpeed', arguments); + } + + @override + Future getPrinterSpeed() async { + return await methodChannel.invokeMethod('getPrinterSpeed'); + } + + @override + Future?> getPrinterPaperTypeList() async { + return await methodChannel + .invokeMethod>('getPrinterPaperTypeList'); + } } diff --git a/lib/imin_printer_platform_interface.dart b/lib/imin_printer_platform_interface.dart index a3fcc2f..af2c381 100644 --- a/lib/imin_printer_platform_interface.dart +++ b/lib/imin_printer_platform_interface.dart @@ -353,10 +353,49 @@ abstract class IminPrinterPlatform extends PlatformInterface { Future enterPrinterBuffer(bool isClean) { throw UnimplementedError('enterPrinterBuffer() has not been implemented.'); } + Future commitPrinterBuffer() { throw UnimplementedError('commitPrinterBuffer() has not been implemented.'); } + Future exitPrinterBuffer(bool isCommit) { throw UnimplementedError('exitPrinterBuffer() has not been implemented.'); } + + Future?> getFontCodepage() { + throw UnimplementedError('getFontCodepage() has not been implemented.'); + } + + Future setFontCodepage(int codepage) { + throw UnimplementedError('setFontCodepage() has not been implemented.'); + } + + Future getCurCodepage() { + throw UnimplementedError('getCurCodepage() has not been implemented.'); + } + + Future?> getEncodeList() { + throw UnimplementedError('getEncodeList() has not been implemented.'); + } + + Future getCurEncode() { + throw UnimplementedError('getCurEncode() has not been implemented.'); + } + + Future?> getPrinterDensityList() { + throw UnimplementedError('getPrinterDensityList() has not been implemented.'); + } + Future?> getPrinterSpeedList() { + throw UnimplementedError('getPrinterSpeedList() has not been implemented.'); + } + Future setPrinterSpeed(int speed) { + throw UnimplementedError('setPrinterSpeed() has not been implemented.'); + } + Future getPrinterSpeed() { + throw UnimplementedError('getPrinterSpeed() has not been implemented.'); + } + Future?> getPrinterPaperTypeList() { + throw UnimplementedError('getPrinterPaperTypeList() has not been implemented.'); + } + } diff --git a/test/imin_printer_test.dart b/test/imin_printer_test.dart index ea5b54e..f18844f 100644 --- a/test/imin_printer_test.dart +++ b/test/imin_printer_test.dart @@ -192,6 +192,26 @@ class MockIminPrinterPlatform Future commitPrinterBuffer() => Future.value(); @override Future exitPrinterBuffer(bool isCommit) => Future.value(); + @override + Future?> getFontCodepage() => Future.value(); + @override + Future setFontCodepage(int codepage) => Future.value(); + @override + Future getCurCodepage() => Future.value(); + @override + Future?> getEncodeList() => Future.value(); + @override + Future getCurEncode() => Future.value(); + @override + Future?> getPrinterDensityList() => Future.value(); + @override + Future?> getPrinterSpeedList() => Future.value(); + @override + Future setPrinterSpeed(int speed) => Future.value(); + @override + Future getPrinterSpeed() => Future.value(); + @override + Future?> getPrinterPaperTypeList() => Future.value(); } void main() { From 9492713954f6de9c9c1d8cd19e6e931e0d7cba66 Mon Sep 17 00:00:00 2001 From: "song.chao" Date: Wed, 24 Jan 2024 15:37:42 +0800 Subject: [PATCH 09/24] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=89=93=E5=8D=B0?= =?UTF-8?q?=E6=96=87=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../printer/imin_printer/IminPrinterPlugin.java | 10 +++++----- example/android/app/build.gradle | 17 ++++++++++++++++- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java b/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java index 842ec17..b5c8676 100644 --- a/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java +++ b/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java @@ -35,6 +35,8 @@ import io.flutter.plugin.common.MethodChannel.MethodCallHandler; import io.flutter.plugin.common.MethodChannel.Result; + + import io.flutter.plugin.common.EventChannel; import io.flutter.plugin.common.EventChannel.EventSink; import io.flutter.plugin.common.EventChannel.StreamHandler; @@ -63,7 +65,8 @@ public class IminPrinterPlugin implements FlutterPlugin, MethodCallHandler, Stre private static final String ACTION_PRITER_STATUS = "status"; private static final String TAG = "IminPrinterPlugin"; private BroadcastReceiver chargingStateChangeReceiver; - + + @Override public void onAttachedToEngine(@NonNull FlutterPluginBinding flutterPluginBinding) { channel = new MethodChannel(flutterPluginBinding.getBinaryMessenger(), "imin_printer"); @@ -992,9 +995,7 @@ public void onPrintResult(int code, String msg) throws RemoteException { if (iminPrintUtils == null) { int textBitmapStyle = call.argument("style"); Log.d("setTextBitmapStyle", "setTextBitmapStyle: " + textBitmapStyle); - if (iminPrintUtils != null) { - PrinterHelper.getInstance().setTextBitmapStyle(textBitmapStyle); - } + PrinterHelper.getInstance().setTextBitmapStyle(textBitmapStyle); } result.success(true); break; @@ -1130,7 +1131,6 @@ public void onPrintResult(int code, String msg) throws RemoteException { } result.success(true); break; - default: result.notImplemented(); break; diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index 6b4b984..fbee717 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -1,11 +1,18 @@ + def localProperties = new Properties() def localPropertiesFile = rootProject.file('local.properties') + if (localPropertiesFile.exists()) { + localPropertiesFile.withReader('UTF-8') { reader -> localProperties.load(reader) } } +def keystorePropertiesFile = rootProject.file("key.properties") +def keystoreProperties = new Properties() +keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) + def flutterRoot = localProperties.getProperty('flutter.sdk') if (flutterRoot == null) { throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") @@ -34,7 +41,14 @@ android { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } - + signingConfigs { + release { + keyAlias keystoreProperties['keyAlias'] + keyPassword keystoreProperties['keyPassword'] + storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null + storePassword keystoreProperties['storePassword'] + } + } defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "com.imin.printer.imin_printer_example" @@ -52,6 +66,7 @@ android { // TODO: Add your own signing config for the release build. // Signing with the debug keys for now, so `flutter run --release` works. signingConfig signingConfigs.debug + // signingConfig signingConfigs.release } } } From f25963a8bc2915c9a72300166ca4c70da1b75ecd Mon Sep 17 00:00:00 2001 From: "song.chao" Date: Tue, 30 Jan 2024 08:50:22 +0800 Subject: [PATCH 10/24] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../imin_printer/IminPrinterPlugin.java | 47 +- docs/.nojekyll | 0 docs/README.md | 3 + docs/_coverpage.md | 0 docs/_navbar.md | 7 + docs/_sidebar.md | 3 + docs/index.html | 37 ++ docs/quickstart.md | 1 + docs/v2/quickstart.md | 1 + docs/zh-cn/README.md | 13 + docs/zh-cn/_navbar.md | 6 + docs/zh-cn/_sidebar.md | 5 + docs/zh-cn/api.md | 407 ++++++++++++++++++ docs/zh-cn/quickstart.md | 60 +++ docs/zh-cn/v2/README.md | 13 + docs/zh-cn/v2/_sidebar.md | 5 + docs/zh-cn/v2/api.md | 20 + docs/zh-cn/v2/quickstart.md | 60 +++ example/lib/main.dart | 25 +- example/lib/pages/v2/home.dart | 13 +- lib/imin_printer.dart | 20 +- lib/imin_printer_method_channel.dart | 9 +- lib/imin_printer_platform_interface.dart | 8 +- test/imin_printer_test.dart | 6 +- 24 files changed, 702 insertions(+), 67 deletions(-) create mode 100644 docs/.nojekyll create mode 100644 docs/README.md create mode 100644 docs/_coverpage.md create mode 100644 docs/_navbar.md create mode 100644 docs/_sidebar.md create mode 100644 docs/index.html create mode 100644 docs/quickstart.md create mode 100644 docs/v2/quickstart.md create mode 100644 docs/zh-cn/README.md create mode 100644 docs/zh-cn/_navbar.md create mode 100644 docs/zh-cn/_sidebar.md create mode 100644 docs/zh-cn/api.md create mode 100644 docs/zh-cn/quickstart.md create mode 100644 docs/zh-cn/v2/README.md create mode 100644 docs/zh-cn/v2/_sidebar.md create mode 100644 docs/zh-cn/v2/api.md create mode 100644 docs/zh-cn/v2/quickstart.md diff --git a/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java b/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java index b5c8676..55e2712 100644 --- a/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java +++ b/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java @@ -23,6 +23,8 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Map; +import java.util.HashMap; import android.graphics.Typeface; import android.content.Context; @@ -36,7 +38,6 @@ import io.flutter.plugin.common.MethodChannel.Result; - import io.flutter.plugin.common.EventChannel; import io.flutter.plugin.common.EventChannel.EventSink; import io.flutter.plugin.common.EventChannel.StreamHandler; @@ -65,14 +66,13 @@ public class IminPrinterPlugin implements FlutterPlugin, MethodCallHandler, Stre private static final String ACTION_PRITER_STATUS = "status"; private static final String TAG = "IminPrinterPlugin"; private BroadcastReceiver chargingStateChangeReceiver; - - + + @Override public void onAttachedToEngine(@NonNull FlutterPluginBinding flutterPluginBinding) { channel = new MethodChannel(flutterPluginBinding.getBinaryMessenger(), "imin_printer"); _context = flutterPluginBinding.getApplicationContext(); eventChannel = new EventChannel(flutterPluginBinding.getBinaryMessenger(), "imin_printer_event"); - if (Build.MODEL.equals("W27_Pro") || Build.MODEL.equals("I23D01") || Build.MODEL.equals("I23M01") || Build.MODEL.equals("I23M02")) { //初始化 2.0 的 SDK。 PrinterHelper.getInstance().initPrinterService(Utils.getInstance().getContext()); @@ -89,21 +89,13 @@ public void onAttachedToEngine(@NonNull FlutterPluginBinding flutterPluginBindin } eventChannel.setStreamHandler(this); channel.setMethodCallHandler(this); + } @SuppressLint("NewApi") @Override public void onMethodCall(@NonNull MethodCall call, @NonNull Result result) { switch (call.method) { - case "sdkVersion": - if (Build.MODEL.equals("W27_Pro") || Build.MODEL.equals("I23D01") || Build.MODEL.equals("I23M01") || Build.MODEL.equals("I23M02")) { - //初始化 2.0 的 SDK。 - result.success(true); - } else { - //初始化 1.0 SDK - result.success(false); - } - break; case "initPrinter": if (iminPrintUtils != null) { iminPrintUtils.initPrinter(connectType); @@ -111,7 +103,6 @@ public void onMethodCall(@NonNull MethodCall call, @NonNull Result result) { } else { PrinterHelper.getInstance().initPrinter(Utils.getInstance().getContext().getPackageName(), null); } - break; case "getPrinterStatus": if (iminPrintUtils != null) { @@ -1047,8 +1038,8 @@ public void onPrintResult(int code, String msg) throws RemoteException { if (iminPrintUtils == null) { String textBitmapString = call.argument("text"); int textBitmapAlign = call.argument("align"); - Log.d("sdsd","打印文字对齐方式textBitmapString" + textBitmapString); - Log.d("sdsd","打印文字对齐方式textBitmapAlign" + textBitmapAlign); + Log.d("sdsd", "打印文字对齐方式textBitmapString" + textBitmapString); + Log.d("sdsd", "打印文字对齐方式textBitmapAlign" + textBitmapAlign); PrinterHelper.getInstance().printTextBitmapWithAli(textBitmapString, textBitmapAlign, null); } @@ -1142,7 +1133,15 @@ private BroadcastReceiver createChargingStateChangeReceiver(EventChannel.EventSi @Override public void onReceive(Context context, Intent intent) { int status = intent.getIntExtra(ACTION_PRITER_STATUS, -1); - events.success(status); + Log.d("TAG", "打印机状态:" + intent.getAction()); + if (intent.getAction().equals(ACTION_PRITER_STATUS_CHANGE)) { + Map result = new HashMap(); + result.put("status", status); + result.put("action", "printer_status"); + events.success(result); + } else { + events.success(true); + } } }; } @@ -1152,10 +1151,24 @@ public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) { channel.setMethodCallHandler(null); } + private void getUsePrinterSdkVersion(EventChannel.EventSink events) { + Map result = new HashMap(); + result.put("action", "printer_sdk_version"); + if (Build.MODEL.equals("W27_Pro") || Build.MODEL.equals("I23D01") || Build.MODEL.equals("I23M01") || Build.MODEL.equals("I23M02")) { + //初始化 2.0 的 SDK。 + result.put("status", true); + } else { + //初始化 1.0 SDK + result.put("status", false); + } + events.success(result); + } + @Override public void onListen(Object argument, EventChannel.EventSink events) { eventSink = events; chargingStateChangeReceiver = createChargingStateChangeReceiver(eventSink); + getUsePrinterSdkVersion(eventSink); IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(ACTION_PRITER_STATUS_CHANGE); intentFilter.addAction(ACTION_POGOPIN_STATUS_CHANGE); diff --git a/docs/.nojekyll b/docs/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..da2056b --- /dev/null +++ b/docs/README.md @@ -0,0 +1,3 @@ +# Headline + +> An awesome project. diff --git a/docs/_coverpage.md b/docs/_coverpage.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/_navbar.md b/docs/_navbar.md new file mode 100644 index 0000000..0b8b314 --- /dev/null +++ b/docs/_navbar.md @@ -0,0 +1,7 @@ +* Translations + * [:us: English](/) + * [:cn: 中文](/zh-cn/) +* SDK Version + * [v1](/) + * [v2](v2/) + diff --git a/docs/_sidebar.md b/docs/_sidebar.md new file mode 100644 index 0000000..bc05850 --- /dev/null +++ b/docs/_sidebar.md @@ -0,0 +1,3 @@ +* 入门 + + * [快速开始](quickstart.md) \ No newline at end of file diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..6a75342 --- /dev/null +++ b/docs/index.html @@ -0,0 +1,37 @@ + + + + + iMin Flutter Printer SDK + + + + + + +
+ + + + + + + + + + + diff --git a/docs/quickstart.md b/docs/quickstart.md new file mode 100644 index 0000000..14e8b0d --- /dev/null +++ b/docs/quickstart.md @@ -0,0 +1 @@ +wewe \ No newline at end of file diff --git a/docs/v2/quickstart.md b/docs/v2/quickstart.md new file mode 100644 index 0000000..0166403 --- /dev/null +++ b/docs/v2/quickstart.md @@ -0,0 +1 @@ +dfasdas \ No newline at end of file diff --git a/docs/zh-cn/README.md b/docs/zh-cn/README.md new file mode 100644 index 0000000..32072f8 --- /dev/null +++ b/docs/zh-cn/README.md @@ -0,0 +1,13 @@ +## 概述 +iMin 机器有内置了热敏打印机,允许 App 通过 sdk 直接打印热敏⼩票,具有打印机的 +产品有: + - ⼿持金融系列 —— M2-202、M2-203、M2 Pro、Swift 1 等。 + - 平板终端系列 —— M2 Max、D1、D1 Pro、Falcon 1 等。 + - 台式收银机设备 —— D4 等 + +iMin 产品的内置打印机⼀共有 2 种规格: + - 80mm 纸张宽度,带切⼑,兼容 58mm, 如 Falcon 1 搭载了这种打印机 + - 58mm 纸张宽度,不带切⼑,如 D1、D1 Pro、M2 Max 搭载了这种打印机 + + +App 开发者可以使⽤flutter⽅式调⽤内置热敏打印机 查看[快速开始](/zh-cn/quickstart.md)了解详情。 diff --git a/docs/zh-cn/_navbar.md b/docs/zh-cn/_navbar.md new file mode 100644 index 0000000..02c37f4 --- /dev/null +++ b/docs/zh-cn/_navbar.md @@ -0,0 +1,6 @@ +* Translations + * [:uk: English](/) + * [:cn: 中文](/zh-cn/) +* SDK版本 + * [v1](/zh-cn/) + * [v2](zh-cn/v2/) \ No newline at end of file diff --git a/docs/zh-cn/_sidebar.md b/docs/zh-cn/_sidebar.md new file mode 100644 index 0000000..a2b6b43 --- /dev/null +++ b/docs/zh-cn/_sidebar.md @@ -0,0 +1,5 @@ +* 入门 + + * [快速开始](/zh-cn/quickstart) + + * [文档](/zh-cn/api) \ No newline at end of file diff --git a/docs/zh-cn/api.md b/docs/zh-cn/api.md new file mode 100644 index 0000000..553a15a --- /dev/null +++ b/docs/zh-cn/api.md @@ -0,0 +1,407 @@ +# iMin内部打印机flutter提供的相关方法 + +## 初始化iMin内部打印机 + - initPrinter() + - 无参数 + +示例: +```dart + iminPrinter.initPrinter(); +``` + +## 获取打印机状态 + - getPrinterStatus() + - 无参数 + +示例: +```dart + iminPrinter.getPrinterStatus().then((value){ + // 打印机状态 + print(state['msg']); + }); +``` + +## 走纸一行 + - printAndLineFeed() + - 无参数 + +示例: +```dart + iminPrinter.printAndLineFeed(); +``` + +## 走纸若干行,自定义高度 + - printAndFeedPaper() + - 参数: + - int lineHeight 行高, 取值范围: 1-1016 + +示例: +```dart + iminPrinter.printAndFeedPaper(100); +``` + +## 设置纸张规格 + - setPageFormat() + - 参数: + - int style -> 纸张规格 0-80mm 1-58mm; + +示例: +```dart + iminPrinter.setPageFormat(1); +``` + +## 切刀(切纸) +此方法只适用于带`切刀功能`的iMin(一敏)设备。 + - partialCut() + - 无参数 + +示例: +```dart + iminPrinter.partialCut(); +``` + +## 打印单张图片 + - printSingleBitmap() + - 参数: + - dynamic img -> 图片路径url或者图片二进制流。 + - IminPictureStyle pictureStyle -> 图片样式相关设置(可选)。 + +IminPictureStyle 相关API: + + | 属性 | 说明 | 类型 | 默认值 | + | ---- | ---- | ---- | ---- | + | width | 图片的宽度 | int | 无 | + | height | 图片的宽度 | int| 无 | + | alignment | 打印的图片对齐方式 | enum IminPrintAlign { left, center, right } | 无 | + + +```dart + enum IminPrintAlign { left, center, right } +``` + +示例: +```dart +import 'package:imin_printer/imin_style.dart'; ///如果传递图片样式设置项需要导入 +import 'package:imin_printer/enums.dart'; ///如果传递图片样式设置项需要导入 + +/// 简单使用 +iminPrinter.printSingleBitmap(Uint8List.fromList([0x1B, 0x2A, 0x00, 0x00, 0x00, 0])); + +/// 传递图片使用图片二进制流并设置图片样式 +iminPrinter.printSingleBitmap( + Uint8List.fromList([0x1B, 0x2A, 0x00, 0x00, 0x00, 0]) + pictureStyle: IminPictureStyle( + alignment: IminPrintAlign.center, + ) + ) + + +/// 传递图片使用url地址并设置图片样式 +iminPrinter.printSingleBitmap( + 'https://www.example.com/image.jpg', + pictureStyle: IminPictureStyle( + alignment: IminPrintAlign.center, + width: 250, + height: 50, + )); +``` + + +## 打印多张图片 + - printMultiBitmap() + - 参数: + - List img -> 图片路径url数组或者图片二进制流数组。 + - IminPictureStyle pictureStyle -> 图片样式相关设置(可选)。 + +IminPictureStyle 相关API: + + | 属性 | 说明 | 类型 | 默认值 | + | ---- | ---- | ---- | ---- | + | width | 图片的宽度 | int | 无 | + | height | 图片的宽度 | int| 无 | + | alignment | 打印的图片对齐方式 | enum IminPrintAlign { left, center, right } | 无 | + +```dart + enum IminPrintAlign { left, center, right } +``` + +示例: +```dart +import 'package:imin_printer/imin_style.dart'; ///如果传递图片样式设置项需要导入 +import 'package:imin_printer/enums.dart'; ///如果传递图片样式设置项需要导入 + +/// 简单使用 + +iminPrinter.printMultiBitmap([Uint8List.fromList([0x1B, 0x2A, 0x00, 0x00, 0x00, 0]), Uint8List.fromList([0x1B, 0x2A, 0x00, 0x00]]); + +/// 传递图片使用图片二进制流并设置图片样式 +iminPrinter.printMultiBitmap( + [Uint8List.fromList([0x1B, 0x2A, 0x00, 0x00, 0x00, 0]), Uint8List.fromList([0x1B, 0x2A, 0x00, 0x00])], + pictureStyle: IminPictureStyle( + alignment: IminPrintAlign.center, + ) + ) + + +/// 传递图片使用url地址并设置图片样式 +iminPrinter.printSingleBitmap( + ['https://www.example.com/image.jpg', 'https://www.example.com/image.jpg'], + pictureStyle: IminPictureStyle( + alignment: IminPrintAlign.center, + width: 250, + height: 50, + )); +``` + + +## 打印单个反白图片 + - printSingleBitmapBlackWhite + - 参数: + - dynamic img -> 图片路径url或者图片二进制流。 + - IminBaseStyle baseStyle -> 图片样式相关设置(可选)。 + +IminBaseStyle 相关API: + +| 属性 | 说明 | 类型 | 默认值 | +| ---- | ----| ----| ---- | +| width | 图片的宽度 | int | 无 | +| height | 图片的宽度 | int| 无 | + +示例: +```dart + +/// 传递图片使用图片二进制流 +iminPrinter.printSingleBitmapBlackWhite(Uint8List.fromList([0x1B, 0x2A, 0x00, 0x00, 0x00, 0])) + +/// 传递图片使用url地址并设置图片样式 +iminPrinter.printSingleBitmapBlackWhite('https://www.example.com/image.jpg', + pictureStyle: IminBaseStyle( + width: 250, + height: 50, + )); + +``` + +## 设置二维码大小 + - setQrCodeSize + - 参数: + - int size -> 二维码大小。 + +示例: +```dart +iminPrinter.setQrCodeSize(5); // 设置二维码大小为5。 +``` + +## 设置二维码和条形码左边距 + - setLeftMargin + - 参数: + - int margin -> 左边距。 + +示例: +```dart +iminPrinter.setLeftMargin(5); // 设置左边距为5。 +``` + +## 设置二维码的纠错级别 + - setQrCodeErrorCorrectionLev + - 参数: + - IminQrcodeCorrectionLevel level -> 纠错级别。 + +```dart + enum IminQrcodeCorrectionLevel { + levelL(48), + levelM(49), + levelQ(50), + levelH(51); + } +``` + +示例: +```dart +import 'package:imin_printer/enums.dart'; ///需要导入 + + +iminPrinter.IminQrcodeCorrectionLevel(IminQrcodeCorrectionLevel.levelL); + +``` + +## 打印二维码 + - printQrCode + - 参数: + - String content -> 二维码内容。 + - IminQrCodeStyle qrCodeStyle -> 二维码样式相关(可选) + +IminQrCodeStyle 二维码样式相关API: + + | 属性 | 描述 | 类型 | 默认值 | + | --- | --- | --- | --- | + | qrSize | 二维码大小 | int | 无 | + | align | 二维码对齐方式 | enum IminPrintAlign { left, center, right } | 无 | + | leftMargin | 二维码左边距 | int | 无 | + | errorCorrectionLevel | 纠错级别 | enum IminQrcodeCorrectionLevel { levelL(48), levelM(49), levelQ(50), levelH(51)} | 无 | + +```dart +enum IminPrintAlign { left, center, right } + +enum IminQrcodeCorrectionLevel { + levelL(48), + levelM(49), + levelQ(50), + levelH(51); +} +``` + +示例: +```dart +import 'package:imin_printer/enums.dart'; ///需要导入 + + iminPrinter.printQrCode('https://www.baidu.com', + IminQrCodeStyle( + qrSize: 4, + errorCorrectionLevel: IminQrcodeCorrectionLevel.levelH, + leftMargin: 2, + align: IminPrintAlign.left + )); +``` + +## 设置双二维码大小 + - setDoubleQRSize + - 参数: + - int qrSize -> 二维码大小。 + +示例: +```dart +iminPrinter.setDoubleQRSize(4); +``` + +## 设置双二维码(QR1)误差 + - setDoubleQR1Level() + - 参数: + - int level -> 误差大小 取值范围:1-3。 + +示例: +```dart +iminPrinter.setDoubleQR1Level(2); +``` +## 设置双二维码(QR2)误差 + - setDoubleQR2Level() + - 参数: + - int level -> 误差大小 取值范围:1-3。 + +示例: +```dart +iminPrinter.setDoubleQR2Level(2); +``` + +## 设置双二维码(QR1) 左边距 + - setDoubleQR1MarginLeft() + - 参数: + - int leftMargin -> 左边距 取值范围:0-576。 + +示例: +```dart +iminPrinter.setDoubleQR1MarginLeft(2); +``` + +## 设置双二维码(QR2) 左边距 + - setDoubleQR2MarginLeft() + - 参数: + - int leftMargin -> 左边距 取值范围:0-576。 + +示例: +```dart +iminPrinter.setDoubleQR2MarginLeft(2); +``` + +## 设置双二维码(QR1)版本 + - setDoubleQR1Version() + - 参数: + - int version -> 版本 取值范围:1-40。 + +示例: +```dart +iminPrinter.setDoubleQR1Version(2); +``` + +## 设置双二维码(QR2)版本 + - setDoubleQR2Version() + - 参数: + - int version -> 版本 取值范围:1-40。 + +示例: +```dart +iminPrinter.setDoubleQR2Version(2); +``` + +## 打印双二维码 + - printDoubleQR() + - 参数: + - IminDoubleQRCodeStyle qr1 -> 第一个二维码设置。 + - IminDoubleQRCodeStyle qr2 -> 第二个二维码设置。 + - int doubleQRSize -> 双二维码大小(可选) + +IminDoubleQRCodeStyle 二维码设置相关API: + + | 属性 | 描述 | 类型 | 默认值 | + | --- | --- | --- | --- | + | text | 二维码内容 | String | - | + | level | 二维码误差等级(可选) | int | - | + | leftMargin | 二维码左边距(可选) | int | - | + | version | 二维码版本(可选) | int | - | + +示例: + +```dart +import 'package:imin_printer/enums.dart'; +import 'package:imin_printer/imin_style.dart'; ///需要导入 + +iminPrinter.printDoubleQR( qrCode1: IminDoubleQRCodeStyle( + text: 'www.imin.sg', + ), + qrCode2: IminDoubleQRCodeStyle( + text: 'www.google.com', + ), + doubleQRSize: 5) +``` + + +## 设置条形码宽度 + - setBarCodeWidth() + - 参数: + - int width -> 条形码宽度 取值范围:2-6。 + +示例: +```dart +iminPrinter.setBarCodeWidth(2); +``` + +## 设置条形码高度 + - setBarCodeHeight() + - 参数: + - int height -> 条形码高度 取值范围:1-255。 + +示例: +```dart +iminPrinter.setBarCodeHeight(2); +``` + +## 打印条形时HRI字符的打印位置 + - setBarCodeContentPrintPos() + - 参数: + - IminBarcodeTextPos position -> 条形码内容打印位置。 + +```dart +enum IminBarcodeTextPos { + noText(0), + textAbove(1), + textBelow(2), + both(3); +} +``` + +示例: +```dart +import 'package:imin_printer/enums.dart'; + + iminPrinter.setBarCodeContentPrintPos(IminBarcodeTextPos.textAbove); +``` \ No newline at end of file diff --git a/docs/zh-cn/quickstart.md b/docs/zh-cn/quickstart.md new file mode 100644 index 0000000..ad5856a --- /dev/null +++ b/docs/zh-cn/quickstart.md @@ -0,0 +1,60 @@ +# 快速开始 + +## 创建一个flutter项目 +在`windows系统(cmd)`或者`Macos系统(终端)`命令行工具以下命令 +```bash + flutter create my_app +``` + +## 安装iMin打印插件 + 在您的生成的flutter项目中安装使用iMin内部打印插件。 + 在您的flutter项目中运行以下命令: +```bash +flutter pub add imin_printer +``` +或在`pubspec.yaml`中添加 +```yaml +dependencies: + imin_printer: ^0.5.7 +``` + +## 项目中使用打印插件 + +在flutter项目中的`lib/main.dart`文件中使用打印插件 +```dart +import 'package:imin_printer/imin_printer.dart'; + +void main() async { + runApp(const MyApp()); +} + +class MyApp extends StatefulWidget { + const MyApp({super.key}); + @override + State createState() => _MyAppState(); +} + +class _MyAppState extends State { + final iminPrinter = IminPrinter(); + @override + void initState() { + super.initState(); + } + @override + Widget build(BuildContext context) { + return MaterialApp( + home: Scaffold( + body: Center( + child: ElevatedButton( + onPressed: () { + iminPrinter.printText("Hello World"); + }, + child: const Text('打印文本'), + ) + ) + ) + ) + } +} + +``` \ No newline at end of file diff --git a/docs/zh-cn/v2/README.md b/docs/zh-cn/v2/README.md new file mode 100644 index 0000000..1acaaf9 --- /dev/null +++ b/docs/zh-cn/v2/README.md @@ -0,0 +1,13 @@ +## 概述 +iMin 机器有内置了热敏打印机,允许 App 通过 sdk 直接打印热敏⼩票,具有打印机的 +产品有: + - ⼿持金融系列 —— M2-202、M2-203、M2 Pro、Swift 1 等。 + - 平板终端系列 —— M2 Max、D1、D1 Pro、Falcon 1 等。 + - 台式收银机设备 —— D4 等 + +iMin 产品的内置打印机⼀共有 2 种规格: + - 80mm 纸张宽度,带切⼑,兼容 58mm, 如 Falcon 1 搭载了这种打印机 + - 58mm 纸张宽度,不带切⼑,如 D1、D1 Pro、M2 Max 搭载了这种打印机 + + +App 开发者可以使⽤flutter⽅式调⽤内置热敏打印机 查看[快速开始](/zh-cn/v2/quickstart.md)了解详情。 diff --git a/docs/zh-cn/v2/_sidebar.md b/docs/zh-cn/v2/_sidebar.md new file mode 100644 index 0000000..35cfaa2 --- /dev/null +++ b/docs/zh-cn/v2/_sidebar.md @@ -0,0 +1,5 @@ +* 入门 + + * [快速开始](/zh-cn/v2/quickstart) + + * [文档](/zh-cn/v2/api) \ No newline at end of file diff --git a/docs/zh-cn/v2/api.md b/docs/zh-cn/v2/api.md new file mode 100644 index 0000000..be41eaf --- /dev/null +++ b/docs/zh-cn/v2/api.md @@ -0,0 +1,20 @@ +# iMin内部打印机flutter提供的相关方法 + +## 初始化iMin内部打印机 + - initPrinter() + - 无参数 + +```dart + iminPrinter.initPrinter(); +``` + +## 获取打印机状态 + - getPrinterStatus() + - 无参数 + +```dart + iminPrinter.getPrinterStatus().then((value){ + // 打印机状态 + print(state['msg']); + }); +``` \ No newline at end of file diff --git a/docs/zh-cn/v2/quickstart.md b/docs/zh-cn/v2/quickstart.md new file mode 100644 index 0000000..ad5856a --- /dev/null +++ b/docs/zh-cn/v2/quickstart.md @@ -0,0 +1,60 @@ +# 快速开始 + +## 创建一个flutter项目 +在`windows系统(cmd)`或者`Macos系统(终端)`命令行工具以下命令 +```bash + flutter create my_app +``` + +## 安装iMin打印插件 + 在您的生成的flutter项目中安装使用iMin内部打印插件。 + 在您的flutter项目中运行以下命令: +```bash +flutter pub add imin_printer +``` +或在`pubspec.yaml`中添加 +```yaml +dependencies: + imin_printer: ^0.5.7 +``` + +## 项目中使用打印插件 + +在flutter项目中的`lib/main.dart`文件中使用打印插件 +```dart +import 'package:imin_printer/imin_printer.dart'; + +void main() async { + runApp(const MyApp()); +} + +class MyApp extends StatefulWidget { + const MyApp({super.key}); + @override + State createState() => _MyAppState(); +} + +class _MyAppState extends State { + final iminPrinter = IminPrinter(); + @override + void initState() { + super.initState(); + } + @override + Widget build(BuildContext context) { + return MaterialApp( + home: Scaffold( + body: Center( + child: ElevatedButton( + onPressed: () { + iminPrinter.printText("Hello World"); + }, + child: const Text('打印文本'), + ) + ) + ) + ) + } +} + +``` \ No newline at end of file diff --git a/example/lib/main.dart b/example/lib/main.dart index 18ea236..a4e26c9 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -21,17 +21,26 @@ class _MyAppState extends State { @override void initState() { super.initState(); - getDeviceUseSDKVersion(); - } - - /// 获取设备应该使用哪个版本SDK - Future getDeviceUseSDKVersion() async { - bool? v = await iminPrinter.getUseSdkVersion(); - setState(() { - version = v; + iminPrinter.receiveBroadcastStream.listen((event) { + debugPrint('broadcastStream: ${event['action'] }'); + if(event['action'] == 'printer_sdk_version') { + setState(() { + version = event['status']; + }); + } }); + // getDeviceUseSDKVersion(); } + // /// 获取设备应该使用哪个版本SDK + // Future getDeviceUseSDKVersion() async { + // bool? v = await iminPrinter.getUseSdkVersion(); + // setState(() { + // version = v; + // }); + + // } + @override Widget build(BuildContext context) { return MaterialApp( diff --git a/example/lib/pages/v2/home.dart b/example/lib/pages/v2/home.dart index f6c36d1..8b21107 100644 --- a/example/lib/pages/v2/home.dart +++ b/example/lib/pages/v2/home.dart @@ -26,9 +26,7 @@ class _NewHomeState extends State { void initState() { super.initState(); // getMediaFilePermission(); - iminPrinter.listenerEvent((data){ - debugPrint('listenerEvent: $data'); - }); + if (!mounted) return; } /// 获取媒体文件读写权限 @@ -77,7 +75,8 @@ class _NewHomeState extends State { child: const Text('init Printer')), OutlinedButton( onPressed: () async { - Map state = await iminPrinter.getPrinterStatus(); + Map state = + await iminPrinter.getPrinterStatus(); Fluttertoast.showToast( msg: state['msg'], toastLength: Toast.LENGTH_LONG, @@ -443,16 +442,14 @@ class _NewHomeState extends State { ), OutlinedButton( onPressed: () async { - Navigator.push( + Navigator.push( context, MaterialPageRoute( - builder: (context) => - const TransactionPrintPage()), + builder: (context) => const TransactionPrintPage()), ); }, child: const Text('transaction printing'), ), - ], ), ))); diff --git a/lib/imin_printer.dart b/lib/imin_printer.dart index ff4e478..77a415e 100644 --- a/lib/imin_printer.dart +++ b/lib/imin_printer.dart @@ -1,5 +1,4 @@ -import 'dart:typed_data'; - +import 'package:flutter/services.dart'; import 'imin_printer_platform_interface.dart'; import 'enums.dart'; import 'imin_style.dart'; @@ -9,21 +8,8 @@ import 'package:logger/logger.dart'; var logger = Logger(); class IminPrinter { - Future listenerEvent(dynamic onEvent, {dynamic onError}) { - return IminPrinterPlatform.instance - .listenerEvent(onEvent, onError: onEvent); - } - - /// Get what version of sdk is the current device using - /// - /// {@tool snippet} - /// - /// ```dart - /// iminPrinter.getUseSdkVersion() - /// ``` - /// {@end-tool} - Future getUseSdkVersion() { - return IminPrinterPlatform.instance.getUseSdkVersion(); + Stream get receiveBroadcastStream { + return IminPrinterPlatform.instance.initEventChannel(); } /// Reset the printer’s logic program (for example: layout settings, bold and other style settings), but do not clear the buffer data, so unfinished print jobs will continue after reset. diff --git a/lib/imin_printer_method_channel.dart b/lib/imin_printer_method_channel.dart index 26cff5f..5f372a7 100644 --- a/lib/imin_printer_method_channel.dart +++ b/lib/imin_printer_method_channel.dart @@ -19,13 +19,8 @@ class MethodChannelIminPrinter extends IminPrinterPlatform { final eventChannel = const EventChannel('imin_printer_event'); @override - Future listenerEvent(dynamic onEvent, {dynamic onError}) async { - eventChannel.receiveBroadcastStream().listen(onEvent, onError: onError); - } - - @override - Future getUseSdkVersion() async { - return await methodChannel.invokeMethod('sdkVersion'); + Stream initEventChannel() { + return eventChannel.receiveBroadcastStream(); } @override diff --git a/lib/imin_printer_platform_interface.dart b/lib/imin_printer_platform_interface.dart index af2c381..f0f1514 100644 --- a/lib/imin_printer_platform_interface.dart +++ b/lib/imin_printer_platform_interface.dart @@ -28,12 +28,8 @@ abstract class IminPrinterPlatform extends PlatformInterface { _instance = instance; } - Future listenerEvent(dynamic onEvent, {dynamic onError}) { - throw UnimplementedError('listenerEvent() has not been implemented.'); - } - - Future getUseSdkVersion() { - throw UnimplementedError('getUseSdkVersion() has not been implemented.'); + Stream initEventChannel() { + throw UnimplementedError('initEventChannel() has not been implemented.'); } Future initPrinter() { diff --git a/test/imin_printer_test.dart b/test/imin_printer_test.dart index f18844f..6fac174 100644 --- a/test/imin_printer_test.dart +++ b/test/imin_printer_test.dart @@ -12,11 +12,9 @@ import 'package:plugin_platform_interface/plugin_platform_interface.dart'; class MockIminPrinterPlatform with MockPlatformInterfaceMixin implements IminPrinterPlatform { + @override - Future listenerEvent(dynamic onEvent, {dynamic onError}) => - Future.value(); - @override - Future getUseSdkVersion() => Future.value(true); + Stream initEventChannel() => const Stream.empty(); @override Future initPrinter() => Future.value(true); @override From ffd402506d1cd7203f6690137ef06e7206de42f2 Mon Sep 17 00:00:00 2001 From: "song.chao" Date: Tue, 30 Jan 2024 16:26:33 +0800 Subject: [PATCH 11/24] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=89=93=E5=8D=B0sdk?= =?UTF-8?q?=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../imin_printer/IminPrinterPlugin.java | 2 - docs/README.md | 14 +- docs/_navbar.md | 4 +- docs/_sidebar.md | 6 +- docs/api.md | 760 +++++++++++ docs/quickstart.md | 61 +- docs/v2/README.md | 13 + docs/v2/_sidebar.md | 5 + docs/v2/api.md | 1155 +++++++++++++++++ docs/v2/quickstart.md | 61 +- docs/zh-cn/README.md | 2 +- docs/zh-cn/_navbar.md | 4 +- docs/zh-cn/api.md | 357 ++++- docs/zh-cn/v2/README.md | 2 +- docs/zh-cn/v2/api.md | 1122 ++++++++++++++++ example/lib/pages/v2/print_sttings_form.dart | 2 +- lib/imin_printer.dart | 4 + lib/imin_printer_method_channel.dart | 8 + lib/imin_printer_platform_interface.dart | 3 + test/imin_printer_test.dart | 3 + 20 files changed, 3570 insertions(+), 18 deletions(-) create mode 100644 docs/api.md create mode 100644 docs/v2/README.md create mode 100644 docs/v2/_sidebar.md create mode 100644 docs/v2/api.md diff --git a/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java b/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java index 55e2712..e5c0129 100644 --- a/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java +++ b/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java @@ -227,8 +227,6 @@ public void callback(int status) { String text = call.argument("text"); if (iminPrintUtils != null) { iminPrintUtils.printText(text); - } else { - PrinterHelper.getInstance().printTextBitmap(text, null); } result.success(true); break; diff --git a/docs/README.md b/docs/README.md index da2056b..db4e113 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,3 +1,13 @@ -# Headline +## Overview +iMin machine has a built-in thermal printer, allowing the App to print thermal receipts directly through the sdk, with a printer +The products come with: + - Handheld Finance Series —— M2-202、M2-203、M2 Pro、Swift 1 ...。 + - Flat panel terminal Series —— M2 Max、D1、D1 Pro、Falcon 1 ...。 + - Desk cash register equipment —— D4 ... -> An awesome project. +iMin products have two types of built-in printers: + - 80mm paper width, with cutter, compatible with 58mm, such as Falcon 1 equipped with this printer + - 58mm 58mm paper width, without cutting knife, such as D1, D1 Pro, M2 Max equipped with this printer + + +App developers can use flutter mode to call the built-in thermal printer to view[Quick start](/quickstart)Understand the details. diff --git a/docs/_navbar.md b/docs/_navbar.md index 0b8b314..eff64bf 100644 --- a/docs/_navbar.md +++ b/docs/_navbar.md @@ -2,6 +2,6 @@ * [:us: English](/) * [:cn: 中文](/zh-cn/) * SDK Version - * [v1](/) - * [v2](v2/) + * [v1.0](/) + * [v2.0](v2/) diff --git a/docs/_sidebar.md b/docs/_sidebar.md index bc05850..5c63bc0 100644 --- a/docs/_sidebar.md +++ b/docs/_sidebar.md @@ -1,3 +1,5 @@ -* 入门 +* introduction - * [快速开始](quickstart.md) \ No newline at end of file + * [Quick Start](quickstart.md) + + * [Document](/api) \ No newline at end of file diff --git a/docs/api.md b/docs/api.md new file mode 100644 index 0000000..d85ee55 --- /dev/null +++ b/docs/api.md @@ -0,0 +1,760 @@ +# Related methods provided by flutter, iMin's internal printer + +## Initializes the iMin internal printer + - initPrinter() + - Not parameter + +Example: +```dart + iminPrinter.initPrinter(); +``` + +## Get printer status + - getPrinterStatus() + - Not parameter + +Example: +```dart + iminPrinter.getPrinterStatus().then((value){ + // printer status + print(state['msg']); + }); +``` + +## A line of paper + - printAndLineFeed() + - Not parameter + +Example: +```dart + iminPrinter.printAndLineFeed(); +``` + + +## Walk several lines of paper, customize the height + - printAndFeedPaper() + - parameter: + - int lineHeight , Value range: 1-1016 + +Example: +```dart + iminPrinter.printAndFeedPaper(100); +``` + +## Set paper size + - setPageFormat() + - parameter: + - int style -> Paper size 0-80mm 1-58mm; + +Example: +```dart + iminPrinter.setPageFormat(1); +``` + +## cutter +This method is only applicable to iMin devices with 'cutter function'. + - partialCut() + - Not parameter + +Example: +```dart + iminPrinter.partialCut(); +``` + +## Set alignment + - setAlignment + - parameter: + - IminPrintAlign alignment -> Alignment mode + +```dart + enum IminPrintAlign { left, center, right } +``` + +Example: +```dart +import 'package:imin_printer/enums.dart'; ///need import + iminPrinter.setAlignment(IminPrintAlign.center); +``` + +## Set text size + - setTextSize() + - parameter: + - int size -> Font size + +Example: +```dart + iminPrinter.setTextSize(25); +``` + +## Set text Typeface + - setTextTypeface() + - parameter: + - IminTypeface typeface -> Typeface + +```dart +enum IminTypeface { + typefaceDefault, + typefaceMonospace, + typefaceDefaultBold, + typefaceSansSerif, + typefaceSerif +} +``` + +Example: +```dart +import 'package:imin_printer/enums.dart'; ///need import + + iminPrinter.setTextTypeface(IminTypeface.typefaceMonospace); +``` + +## Set text style + - setTextStyle() + - parameter: + - IminFontStyle style -> Text style + +```dart + enum IminFontStyle { normal, bold, italic, boldItalic } +``` + +Example: +```dart +import 'package:imin_printer/enums.dart'; ///need import + + + iminPrinter.setTextStyle(IminFontStyle.bold); +``` + +## Set text line spacing + - setTextLineSpacing() + - parameter: + - double space -> Line spacing + +Example: +```dart + iminPrinter.setTextLineSpacing(1.0f); +``` + +## Set the print text width + - setTextWidth() + - parameter: + - int width -> Width + +Example: +```dart + iminPrinter.setTextWidth(200); +``` + +## Print text + - printText() + - parameter: + - String text -> Print text content + - IminTextStyle style -> Print text related Settings (optional) + +IminTextStyle Related API: + + | Property | explain | Type | default | + | ---- | ---- | ---- | ---- | + | wordWrap | Whether print text will join `\n` ,`true` or not set automatic `\n`, for `false` without `\n` | bool | None | + | fontSize | Print text size | int | None | + | space | Print text line spacing | double | None | + | width | Print text width | int | None | + | typeface | Print text font | IminTypeface | None | + | fontStyle | Print text style | IminFontStyle | None | + | align | Print text alignment | IminPrintAlign | None | + +```dart +enum IminTypeface { + typefaceDefault, + typefaceMonospace, + typefaceDefaultBold, + typefaceSansSerif, + typefaceSerif +} +enum IminFontStyle { normal, bold, italic, boldItalic } + +enum IminPrintAlign { left, center, right } +``` + +Example: +```dart +import 'package:imin_printer/imin_style.dart'; ///Need to import +import 'package:imin_printer/enums.dart'; ///Need to import + +///Simple use +iminPrinter.printText("Hello World"); + +/// Set the Settings related to the printed text +iminPrinter.printText("Hello World", IminTextStyle( + fontSize: 20, + space: 1.0f, + width: 100, + typeface: IminTypeface.typefaceDefaultBold, + fontStyle: IminFontStyle.boldItalic, + align: IminPrintAlign.center +)); + +``` + +## Print anti-white text + - printAntiWhiteText() + - parameter: + - String text -> Print text content + - IminTextStyle style -> Print text related Settings (optional) + +IminTextStyle Related API: + + | Property | explain | Type | default | + | ---- | ---- | ---- | ---- | + | wordWrap | Whether print text will join `\n` ,`true` or not set automatic `\n`, for `false` without `\n` | bool | None | + | fontSize | Print text size | int | None | + | space | Print text line spacing | double | None | + | width | Print text width | int | None | + | typeface | Print text font | IminTypeface | None | + | fontStyle | Print text style | IminFontStyle | None | + | align | Print text alignment | IminPrintAlign | None | + +```dart +enum IminTypeface { + typefaceDefault, + typefaceMonospace, + typefaceDefaultBold, + typefaceSansSerif, + typefaceSerif +} +enum IminFontStyle { normal, bold, italic, boldItalic } + +enum IminPrintAlign { left, center, right } +``` + +Example: +```dart +import 'package:imin_printer/imin_style.dart'; /// Need to import +import 'package:imin_printer/enums.dart'; ///Need to import + +/// Simple use +iminPrinter.printAntiWhiteText("Hello World"); + +/// Set the Settings related to the printed text +iminPrinter.printAntiWhiteText("Hello World", IminTextStyle( + fontSize: 20, + space: 1.0f, + width: 100, + typeface: IminTypeface.typefaceDefaultBold, + fontStyle: IminFontStyle.boldItalic, + align: IminPrintAlign.center +)); + +``` + + +## Print Table + - printColumnsText() + - parameter: + - List cols -> Column array + +ColumnMaker Related API: + + | Property | explain | Type | default | + | ---- | ---- | ---- | ---- | + | text | Column content | String | None | + | width | Column width | int | None | + | align | Column alignment | IminPrintAlign | None | + | fontSize | Font size | int | None | + +Example: +```dart +import 'package:imin_printer/column_maker.dart'; /// Need to import +import 'package:imin_printer/enums.dart'; /// Need to import + + + iminPrinter.printColumnsText(cols: [ + ColumnMaker( + text: '1', + width: 1, + fontSize: 26, + align: IminPrintAlign.center), + ColumnMaker( + text: 'iMin', + width: 2, + fontSize: 26, + align: IminPrintAlign.left), + ColumnMaker( + text: 'iMin', + width: 1, + fontSize: 26, + align: IminPrintAlign.right) + ]) + +``` + + +## Print a single image + - printSingleBitmap() + - parameter: + - dynamic img -> Image path url or image binary stream。 + - IminPictureStyle pictureStyle -> Image style Settings (optional)。 + +IminPictureStyle Related API: + + | Property | explain | Type | default | + | ---- | ---- | ---- | ---- | + | width | Picture width | int | None | + | height | Picture height | int| None | + | alignment | Print picture alignment | enum IminPrintAlign { left, center, right } | None | + + +```dart + enum IminPrintAlign { left, center, right } +``` + +Example: +```dart +import 'package:imin_printer/imin_style.dart'; ///If passing an image style setting item needs to be imported +import 'package:imin_printer/enums.dart'; ///If passing an image style setting item needs to be imported + +/// Simple use +iminPrinter.printSingleBitmap(Uint8List.fromList([0x1B, 0x2A, 0x00, 0x00, 0x00, 0])); + +/// Use the image binary stream and set the image style +iminPrinter.printSingleBitmap( + Uint8List.fromList([0x1B, 0x2A, 0x00, 0x00, 0x00, 0]) + pictureStyle: IminPictureStyle( + alignment: IminPrintAlign.center, + ) + ) + + +/// Pass the image using the url address and set the image style +iminPrinter.printSingleBitmap( + 'https://www.example.com/image.jpg', + pictureStyle: IminPictureStyle( + alignment: IminPrintAlign.center, + width: 250, + height: 50, + )); +``` + + +## Print multiple pictures + - printMultiBitmap() + - parameter: + - List img -> Image path url array or image binary stream array。 + - IminPictureStyle pictureStyle -> Image style Settings (optional)。 + +IminPictureStyle Related API: + + | Property | explain | Type | default | + | ---- | ---- | ---- | ---- | + | width | Picture width | int | None | + | height | Picture height | int| None | + | alignment | Print picture alignment | enum IminPrintAlign { left, center, right } | None | + +```dart + enum IminPrintAlign { left, center, right } +``` + +Example: +```dart +import 'package:imin_printer/imin_style.dart'; /// If passing an image style setting item needs to be imported +import 'package:imin_printer/enums.dart'; /// If passing an image style setting item needs to be imported + +/// Simple use + +iminPrinter.printMultiBitmap([Uint8List.fromList([0x1B, 0x2A, 0x00, 0x00, 0x00, 0]), Uint8List.fromList([0x1B, 0x2A, 0x00, 0x00]]); + +/// Use the image binary stream and set the image style +iminPrinter.printMultiBitmap( + [Uint8List.fromList([0x1B, 0x2A, 0x00, 0x00, 0x00, 0]), Uint8List.fromList([0x1B, 0x2A, 0x00, 0x00])], + pictureStyle: IminPictureStyle( + alignment: IminPrintAlign.center, + ) + ) + + +/// Pass the image using the url address and set the image style +iminPrinter.printSingleBitmap( + ['https://www.example.com/image.jpg', 'https://www.example.com/image.jpg'], + pictureStyle: IminPictureStyle( + alignment: IminPrintAlign.center, + width: 250, + height: 50, + )); +``` + + +## Print a single anti-white image + - printSingleBitmapBlackWhite + - parameter: + - dynamic img -> Image path url or image binary stream。 + - IminBaseStyle baseStyle -> Image style Settings (optional)。 + +IminBaseStyle Related API: + + | Property | explain | Type | default | + | ---- | ---- | ---- | ---- | + | width | Picture width | int | None | + | height | Picture height | int| None | + +Example: +```dart + +/// Pass a picture using a picture binary stream +iminPrinter.printSingleBitmapBlackWhite(Uint8List.fromList([0x1B, 0x2A, 0x00, 0x00, 0x00, 0])) + +/// Pass the image using the url address and set the image style +iminPrinter.printSingleBitmapBlackWhite('https://www.example.com/image.jpg', + pictureStyle: IminBaseStyle( + width: 250, + height: 50, + )); + +``` + +## Set QR code size + - setQrCodeSize + - parameter: + - int size -> Qr code size。 + +Example: +```dart +iminPrinter.setQrCodeSize(5); // Set the QR code size to 5. +``` + +## Set the left margin of the QR code and barcode + - setLeftMargin + - parameter: + - int margin -> left margin + +Example: +```dart +iminPrinter.setLeftMargin(5); // Set the left margin to 5. +``` + +## Set the error correction level of the QR code + - setQrCodeErrorCorrectionLev + - parameter: + - IminQrcodeCorrectionLevel level -> Error correction level. + +```dart + enum IminQrcodeCorrectionLevel { + levelL(48), + levelM(49), + levelQ(50), + levelH(51); + } +``` + +Example: +```dart +import 'package:imin_printer/enums.dart'; ///Need to import + + +iminPrinter.IminQrcodeCorrectionLevel(IminQrcodeCorrectionLevel.levelL); + +``` + +## Print QR code + - printQrCode + - parameter: + - String content -> Qr code content. + - IminQrCodeStyle qrCodeStyle -> Qr code style correlation (optional) + +IminQrCodeStyle Qr code style related API: + + | Property | explain | Type | default | + | --- | --- | --- | --- | + | qrSize | Qr code size | int | None | + | align | Qr code alignment | enum IminPrintAlign { left, center, right } | None | + | leftMargin | Left margin of QR code | int | None | + | errorCorrectionLevel | Error correction level | enum IminQrcodeCorrectionLevel { levelL(48), levelM(49), levelQ(50), levelH(51)} | None | + + +```dart +enum IminPrintAlign { left, center, right } + +enum IminQrcodeCorrectionLevel { + levelL(48), + levelM(49), + levelQ(50), + levelH(51); +} +``` + +Example: +```dart +import 'package:imin_printer/enums.dart'; ///Need to import + + iminPrinter.printQrCode('https://www.baidu.com', + IminQrCodeStyle( + qrSize: 4, + errorCorrectionLevel: IminQrcodeCorrectionLevel.levelH, + leftMargin: 2, + align: IminPrintAlign.left + )); +``` + +## Set double QR code size + - setDoubleQRSize + - parameter: + - int qrSize -> Size of QR code. + +Example: +```dart +iminPrinter.setDoubleQRSize(4); +``` + +## Set double QR code (QR1) error + - setDoubleQR1Level() + - parameter: + - int level -> Error Size Value range :1 to 3。 + +Example: +```dart +iminPrinter.setDoubleQR1Level(2); +``` + +## Set double QR code (QR2) error + - setDoubleQR2Level() + - parameter: + - int level -> Error Size Value range:1 to 3。 + +Example: +```dart +iminPrinter.setDoubleQR2Level(2); +``` + +## Set double QR code (QR1) left margin + - setDoubleQR1MarginLeft() + - parameter: + - int leftMargin -> The left distance ranges from 0 to 576. + +Example: +```dart +iminPrinter.setDoubleQR1MarginLeft(2); +``` + +## Set double QR code (QR2) left margin + - setDoubleQR2MarginLeft() + - parameter: + - int leftMargin -> The left distance ranges from 0 to 576. + +Example: +```dart +iminPrinter.setDoubleQR2MarginLeft(2); +``` + +## Set up the dual QR Code (QR1) version + - setDoubleQR1Version() + - parameter: + - int version -> Version Value range :1 to 40。 + +Example: +```dart +iminPrinter.setDoubleQR1Version(2); +``` + +## Set the dual QR Code (QR2) version + - setDoubleQR2Version() + - parameter: + - int version -> Version Value range :1 to 40。 + +Example: +```dart +iminPrinter.setDoubleQR2Version(2); +``` + +## Print double QR code + - printDoubleQR() + - parameter: + - IminDoubleQRCodeStyle qr1 -> The first QR code setting. + - IminDoubleQRCodeStyle qr2 -> Second QR code Settings. + - int doubleQRSize -> Double QR code size (optional) + +IminDoubleQRCodeStyle Qr code Settings related API + + | Property | explain | Type | default | + | --- | --- | --- | --- | + | text | qrcode content | String | - | + | level | Error level of QR code (optional) | int | - | + | leftMargin | Left margin of QR code (optional) | int | - | + | version | Qr code version (optional) | int | - | + +Example: +```dart +import 'package:imin_printer/enums.dart'; +import 'package:imin_printer/imin_style.dart'; /// Need to import + +iminPrinter.printDoubleQR( qrCode1: IminDoubleQRCodeStyle( + text: 'www.imin.sg', + ), + qrCode2: IminDoubleQRCodeStyle( + text: 'www.google.com', + ), + doubleQRSize: 5) +``` + + +## Set bar code width + - setBarCodeWidth() + - parameter: + - int width -> Bar code width Value range :2-6. + +Example: +```dart +iminPrinter.setBarCodeWidth(2); +``` + +## Set bar code height + - setBarCodeHeight() + - parameter: + - int height -> The bar code height ranges from 1 to 255. + +Example: +```dart +iminPrinter.setBarCodeHeight(2); +``` + +## The print position of the HRI character when printing the bar + - setBarCodeContentPrintPos() + - parameter: + - IminBarcodeTextPos position -> Barcode content print location. + +```dart +enum IminBarcodeTextPos { + noText(0), + textAbove(1), + textBelow(2), + both(3); +} +``` + +Example: +```dart +import 'package:imin_printer/enums.dart'; + + iminPrinter.setBarCodeContentPrintPos(IminBarcodeTextPos.textAbove); +``` + +## Print bar code + - printBarCode() + - parameter: + - IminBarcodeType barCodeType -> Bar code type. + - String barCodeContent -> Bar code content. + - IminBarCodeStyle style -> Bar code style related Settings (optional). + +IminBarCodeStyle Related API: + | Property | explain | Type | default | + | --- | --- | --- | --- | + | width | Bar code width | int | None | + | height | Bar code height | int | None | + | position | Barcode content print location | IminBarcodeTextPos | None | + | align | Barcode alignment | IminPrintAlign | None | + + +```dart +enum IminBarcodeTextPos { + noText(0), + textAbove(1), + textBelow(2), + both(3); +} + +enum IminPrintAlign { left, center, right } + +enum IminBarcodeType { + upcA(0), + upcE(1), + jan13(2), + jan8(3), + code39(4), + itf(5), + codabar(6), + code93(7), + code128(8); +} +``` + +Example: +```dart +import 'package:imin_printer/imin_style.dart'; +import 'package:imin_printer/enums.dart'; + + /// Simple to use + iminPrinter.printBarCode(IminBarcodeType.jan13, "0123456789012",); + + /// Set the bar code style + iminPrinter.printBarCode( + IminBarcodeType.jan13, "0123456789012", + style: IminBarCodeStyle( + width: 150, + height: 50, + align: IminPrintAlign.center, + position: IminBarcodeTextPos.textAbove)); +``` + + +## Print barcode setup format + - printBarCodeToBitmapFormat() + - parameter: + - String barCodeContent -> Bar code content. + - int width -> Bar code width. + - int height -> Bar code height. + - IminBarCodeToBitmapFormat codeFormat -> Bar code format + +```dart +enum IminBarCodeToBitmapFormat { + aztec, + codabar, + code39, + code93, + code128, + dataMatrix, + ean13, + itf, + maxicode, + pdf417, + qrCode, + rss14, + rssExpanded, + upcA, + upcE, + upcEanExteNsion; +} +``` + +Example: +```dart +import 'package:imin_printer/enums.dart'; + + iminPrinter.printBarCodeToBitmapFormat( "0123456789012", 100, 50, IminBarCodeToBitmapFormat.code39); + +``` + + +## Open the money box + - openCashBox() + - Not parameter: + +Example: +```dart + iminPrinter.openCashBox(); +``` + +## Reset printer + - resetDevice() + - Not parameter: + +Example: +```dart + iminPrinter.resetDevice(); +``` + +## Set the initialization printer + - setInitIminPrinter + - parameter: + - bool isDefault -> Whether it is set by default. + +```dart + iminPrinter.setInitIminPrinter(true); +``` \ No newline at end of file diff --git a/docs/quickstart.md b/docs/quickstart.md index 14e8b0d..c45e8ec 100644 --- a/docs/quickstart.md +++ b/docs/quickstart.md @@ -1 +1,60 @@ -wewe \ No newline at end of file +# Quick start + +## Create a flutter project +In 'windows system (cmd)' or 'Macos system (Terminal)' command line tool following command +```bash + flutter create my_app +``` + +## Install the iMin printing plug-in + Install the internal print plugin using iMin in your generated flutter project. + Run the following command in your flutter project: +```bash +flutter pub add imin_printer +``` +Or add in 'pubspec.yaml' +```yaml +dependencies: + imin_printer: ^0.5.7 +``` + +## Use the print plug-in in your project + +Use the print plugin in the 'lib/main.dart' file in the flutter project +```dart +import 'package:imin_printer/imin_printer.dart'; + +void main() async { + runApp(const MyApp()); +} + +class MyApp extends StatefulWidget { + const MyApp({super.key}); + @override + State createState() => _MyAppState(); +} + +class _MyAppState extends State { + final iminPrinter = IminPrinter(); + @override + void initState() { + super.initState(); + } + @override + Widget build(BuildContext context) { + return MaterialApp( + home: Scaffold( + body: Center( + child: ElevatedButton( + onPressed: () { + iminPrinter.printText("Hello World"); + }, + child: const Text('Print text'), + ) + ) + ) + ) + } +} + +``` \ No newline at end of file diff --git a/docs/v2/README.md b/docs/v2/README.md new file mode 100644 index 0000000..ecaf7fc --- /dev/null +++ b/docs/v2/README.md @@ -0,0 +1,13 @@ +## Overview +iMin machine has a built-in thermal printer, allowing the App to print thermal receipts directly through the sdk, with a printer +The products come with: + - Handheld Finance Series —— M2-202、M2-203、M2 Pro、Swift 1 ...。 + - Flat panel terminal Series —— M2 Max、D1、D1 Pro、Falcon 1 ...。 + - Desk cash register equipment —— D4 ... + +iMin products have two types of built-in printers: + - 80mm paper width, with cutter, compatible with 58mm, such as Falcon 1 equipped with this printer + - 58mm 58mm paper width, without cutting knife, such as D1, D1 Pro, M2 Max equipped with this printer + + +App developers can use flutter mode to call the built-in thermal printer to view[Quick start](/v2/quickstart.md)Understand the details. diff --git a/docs/v2/_sidebar.md b/docs/v2/_sidebar.md new file mode 100644 index 0000000..7d9bf42 --- /dev/null +++ b/docs/v2/_sidebar.md @@ -0,0 +1,5 @@ + * introduction + + * [Quick Start](/v2/quickstart) + + * [Document](/v2/api) \ No newline at end of file diff --git a/docs/v2/api.md b/docs/v2/api.md new file mode 100644 index 0000000..8808a9c --- /dev/null +++ b/docs/v2/api.md @@ -0,0 +1,1155 @@ +# Related methods provided by flutter, iMin's internal printer + +## Initializes the iMin internal printer + - initPrinter() + - Not parameter + +Example: +```dart + iminPrinter.initPrinter(); +``` + +## Get printer status + - getPrinterStatus() + - Not parameter + +Example: +```dart + iminPrinter.getPrinterStatus().then((value){ + // printer status + print(state['msg']); + }); +``` + +## Print form (width value method) + - printColumnsText() + - parameter: + - List cols -> Column array + +ColumnMaker Related API: + + | Property | explain | Type | default | + | ---- | ---- | ---- | ---- | + | text | Column content | String | None | + | width | Column width | int | None | + | align | Column alignment | IminPrintAlign | None | + | fontSize | Font size | int | None | + +Example: +```dart +import 'package:imin_printer/column_maker.dart'; ///Need to import +import 'package:imin_printer/enums.dart'; ///Need to import + + + iminPrinter.printColumnsText(cols: [ + ColumnMaker( + text: '1', + width: 1, + fontSize: 26, + align: IminPrintAlign.center), + ColumnMaker( + text: 'iMin', + width: 2, + fontSize: 26, + align: IminPrintAlign.left), + ColumnMaker( + text: 'iMin', + width: 1, + fontSize: 26, + align: IminPrintAlign.right) + ]) + +``` + +## Print form (width weight ratio) + - printColumnsString() + - parameter: + - List cols -> Column array + +ColumnMaker Related API: + + | Property | explain | Type | default | + | ---- | ---- | ---- | ---- | + | text | Column content | String | None | + | width | Column width | int | None | + | align | Column alignment | IminPrintAlign | None | + | fontSize | Font size | int | None | + +Example: +```dart +import 'package:imin_printer/column_maker.dart'; ///Need to import +import 'package:imin_printer/enums.dart'; ///Need to import + + + iminPrinter.printColumnsString(cols: [ + ColumnMaker( + text: '1', + width: 1, + fontSize: 26, + align: IminPrintAlign.center), + ColumnMaker( + text: 'iMin', + width: 2, + fontSize: 26, + align: IminPrintAlign.left), + ColumnMaker( + text: 'iMin', + width: 1, + fontSize: 26, + align: IminPrintAlign.right) + ]) + +``` + +## Print text picture + - printTextBitmap() + - parameter: + - String text -> Print text picture content + - IminTextPictureStyle style -> Print text image related Settings (optional) + +IminTextPictureStyle Related API: + + | Property | explain | Type | default | + | ---- | ---- | ---- | ---- | + | wordWrap | Whether print text will join `\n` ,`true` or not set automatic `\n`, for `false` without `\n` | bool | None | + | fontSize | Print text size | int | None | + | typeface | Print text font | IminTypeface | None | + | letterSpacing | The value of the spacing between printed characters ranges from 1 to 60 | double | None | + | underline | Print text underline | bool | None | + | throughline | Print text stripper lines | bool | None | + | lineHeight | The value ranges from 1 to 255 | double | None | + | reverseWhite | Whether the printed text is reversed white | bool | None | + | fontStyle | Print text style | IminFontStyle | None | + | align | Print text alignment | IminPrintAlign | None | + +```dart +enum IminTypeface { + typefaceDefault, + typefaceMonospace, + typefaceDefaultBold, + typefaceSansSerif, + typefaceSerif +} +enum IminFontStyle { normal, bold, italic, boldItalic } + +enum IminPrintAlign { left, center, right } +``` + +parameter: +```dart +import 'package:imin_printer/imin_style.dart'; /// Need to import +import 'package:imin_printer/enums.dart'; ///Need to import + +/// Simple use +iminPrinter.printTextBitmap("Hello World"); + +/// Set the Settings related to printing text and pictures +iminPrinter.printTextBitmap("Hello World", IminTextPictureStyle( + fontSize: 20, + letterSpacing: 1, + typeface: IminTypeface.typefaceDefaultBold, + fontStyle: IminFontStyle.boldItalic, + align: IminPrintAlign.center +)); + +``` + + +## A line of paper + - printAndLineFeed() + - Not parameter + +Example: +```dart + iminPrinter.printAndLineFeed(); +``` + +## Walk several lines of paper, customize the height + - printAndFeedPaper() + - parameter: + - int lineHeight The value ranges from 1 to 1016 + +Example: +```dart + iminPrinter.printAndFeedPaper(100); +``` + +## cutter(Cut paper part) +This method is only applicable to iMin devices with 'cutter function'. + - partialCut() + - Not parameter + +Example: +```dart + iminPrinter.partialCut(); +``` + +## cutter(Cut the paper completely) +This method is only applicable to iMin devices with 'cutter function'. + - fullCut() + - Not parameter + +Example: +```dart + iminPrinter.fullCut(); +``` + + +## Print a single image + - printSingleBitmap() + - parameter: + - dynamic img -> Image path url or image binary stream。 + - IminPictureStyle pictureStyle -> Image style related Settings (optional)。 + +IminPictureStyle Related API: + + | Property | explain | Type | default | + | ---- | ---- | ---- | ---- | + | width | Picture width | int | None | + | height | Picture height | int| None | + | alignment | Print picture alignment | enum IminPrintAlign { left, center, right } | None | + + +```dart + enum IminPrintAlign { left, center, right } +``` + +Example: +```dart +import 'package:imin_printer/imin_style.dart'; /// If passing an image style setting item needs to be imported +import 'package:imin_printer/enums.dart'; /// If passing an image style setting item needs to be imported + +/// Simple use +iminPrinter.printSingleBitmap(Uint8List.fromList([0x1B, 0x2A, 0x00, 0x00, 0x00, 0])); + +/// Use the image binary stream and set the image style +iminPrinter.printSingleBitmap( + Uint8List.fromList([0x1B, 0x2A, 0x00, 0x00, 0x00, 0]) + pictureStyle: IminPictureStyle( + alignment: IminPrintAlign.center, + ) + ) + + +/// Pass the image using the url address and set the image style +iminPrinter.printSingleBitmap( + 'https://www.example.com/image.jpg', + pictureStyle: IminPictureStyle( + alignment: IminPrintAlign.center, + width: 250, + height: 50, + )); +``` + +## Print multiple pictures + - printMultiBitmap() + - parameter: + - List img -> Image path url array or image binary stream array。 + - IminPictureStyle pictureStyle -> Image style Settings (optional)。 + +IminPictureStyle Related API: + + | Property | explain | Type | default | + | ---- | ---- | ---- | ---- | + | width | Picture width | int | None | + | height | Picture height | int| None | + | alignment | Print picture alignment | enum IminPrintAlign { left, center, right } | None | + +```dart + enum IminPrintAlign { left, center, right } +``` + +Example: +```dart +import 'package:imin_printer/imin_style.dart'; ///If passing the image style setting item needs to be imported +import 'package:imin_printer/enums.dart'; ///If passing the image style setting item needs to be imported + +/// Simple use + +iminPrinter.printMultiBitmap([Uint8List.fromList([0x1B, 0x2A, 0x00, 0x00, 0x00, 0]), Uint8List.fromList([0x1B, 0x2A, 0x00, 0x00]]); + +/// Use the image binary stream and set the image style +iminPrinter.printMultiBitmap( + [Uint8List.fromList([0x1B, 0x2A, 0x00, 0x00, 0x00, 0]), Uint8List.fromList([0x1B, 0x2A, 0x00, 0x00])], + pictureStyle: IminPictureStyle( + alignment: IminPrintAlign.center, + ) + ) + + +/// Pass the image using the url address and set the image style +iminPrinter.printSingleBitmap( + ['https://www.example.com/image.jpg', 'https://www.example.com/image.jpg'], + pictureStyle: IminPictureStyle( + alignment: IminPrintAlign.center, + width: 250, + height: 50, + )); +``` + + +## Set QR code size + - setQrCodeSize + - parameter: + - int size -> Size of QR code. + +Example: +```dart +iminPrinter.setQrCodeSize(5); // Set the QR code size to 5. +``` + +## Set the left margin of the QR code and barcode + - setLeftMargin + - parameter: + - int margin -> Left margin. + +Example: +```dart +iminPrinter.setLeftMargin(5); // Set the left margin to 5. +``` + + +## Set the error correction level of the QR code + - setQrCodeErrorCorrectionLev + - parameter: + - IminQrcodeCorrectionLevel level -> Error correction level. + +```dart + enum IminQrcodeCorrectionLevel { + levelL(48), + levelM(49), + levelQ(50), + levelH(51); + } +``` + +Example: +```dart +import 'package:imin_printer/enums.dart'; ///Need to import + + +iminPrinter.IminQrcodeCorrectionLevel(IminQrcodeCorrectionLevel.levelL); + +``` + + +## Print QR code + - printQrCode + - parameter: + - String content -> Qr code content. + - IminQrCodeStyle qrCodeStyle -> Qr code style correlation (optional) + +IminQrCodeStyle Qr code style related API: + + | Property | explain | Type | default | + | --- | --- | --- | --- | + | qrSize | Qr code size | int | None | + | align | Qr code alignment | enum IminPrintAlign { left, center, right } | None | + | leftMargin | Left margin of QR code | int | None | + | errorCorrectionLevel | Error correction level | enum IminQrcodeCorrectionLevel { levelL(48), levelM(49), levelQ(50), levelH(51)} | None| + +```dart +enum IminPrintAlign { left, center, right } + +enum IminQrcodeCorrectionLevel { + levelL(48), + levelM(49), + levelQ(50), + levelH(51); +} +``` + +Example: +```dart +import 'package:imin_printer/enums.dart'; /// Need to import + + iminPrinter.printQrCode('https://www.baidu.com', + IminQrCodeStyle( + qrSize: 4, + errorCorrectionLevel: IminQrcodeCorrectionLevel.levelH, + leftMargin: 2, + align: IminPrintAlign.left + )); +``` + +## Set bar code width + - setBarCodeWidth() + - parameter: + - int width -> Bar code width Value range :2-6. + +Example: +```dart +iminPrinter.setBarCodeWidth(2); +``` + +## Set bar code height + - setBarCodeHeight() + - parameter: + - int height -> The bar code height ranges from 1 to 255。 + +Example: +```dart +iminPrinter.setBarCodeHeight(2); +``` + +## The printing position of the HRI character when printing the bar + - setBarCodeContentPrintPos() + - parameter: + - IminBarcodeTextPos position -> Bar code content print location. + +```dart +enum IminBarcodeTextPos { + noText(0), + textAbove(1), + textBelow(2), + both(3); +} +``` + +Example: +```dart +iminPrinter.setBarCodeContentPrintPos(IminBarcodeTextPos.textAbove); +``` + + + + +## Set paper specifications + - setPageFormat() + - parameter: + - int style -> Paper size 0-80mm 1-58mm; + +Example: +```dart + iminPrinter.setPageFormat(1); +``` + + +## Print the barcode + - printBarCode() + - parameter: + - IminBarcodeType barCodeType -> Barcode type. + - String barCodeContent -> Bar code content. + - IminBarCodeStyle style -> Bar code style related Settings (optional)。 + +IminBarCodeStyle Related API: + | Property | explain | Type | default | + | --- | --- | --- | --- | + | width | Bar code width | int | None | + | height | Bar code height | int | None | + | position | Bar code content print location | IminBarcodeTextPos | None | + | align | Barcode alignment | IminPrintAlign | None | + + +```dart +enum IminBarcodeTextPos { + noText(0), + textAbove(1), + textBelow(2), + both(3); +} + +enum IminPrintAlign { left, center, right } + +enum IminBarcodeType { + upcA(0), + upcE(1), + jan13(2), + jan8(3), + code39(4), + itf(5), + codabar(6), + code93(7), + code128(8); +} +``` + +Example: +```dart +import 'package:imin_printer/imin_style.dart'; +import 'package:imin_printer/enums.dart'; + + /// Easy to use + iminPrinter.printBarCode(IminBarcodeType.jan13, "0123456789012",); + + /// Set the bar code style + iminPrinter.printBarCode( + IminBarcodeType.jan13, "0123456789012", + style: IminBarCodeStyle( + width: 150, + height: 50, + align: IminPrintAlign.center, + position: IminBarcodeTextPos.textAbove)); +``` + + +## Set the double QR code size + - setDoubleQRSize + - parameter: + - int qrSize -> Qr code size. + +Example: +```dart +iminPrinter.setDoubleQRSize(4); +``` + + +## Set double QR code (QR1) error + - setDoubleQR1Level() + - parameter: + - int level -> Error size range :1-3。 + +Example: +```dart +iminPrinter.setDoubleQR1Level(2); +``` + + +## Set double QR code (QR2) error + - setDoubleQR2Level() + - parameter: + - int level -> Error size range :1-3。 + +Example: +```dart +iminPrinter.setDoubleQR2Level(2); +``` + +## Set the left margin of double QR code (QR1) + - setDoubleQR1MarginLeft() + - parameter: + - int leftMargin -> Left margin range :0-576 + +Example: +```dart +iminPrinter.setDoubleQR1MarginLeft(2); +``` + +## Set the left margin of double QR code (QR2) + - setDoubleQR2MarginLeft() + - parameter: + - int leftMargin -> Left margin range :0-576. + +Example: +```dart +iminPrinter.setDoubleQR2MarginLeft(2); +``` + + +## Set double QR code (QR1) version + - setDoubleQR1Version() + - parameter: + - int version -> Version range :1-40。 + +Example: +```dart +iminPrinter.setDoubleQR1Version(2); +``` + +## Set dual QR code (QR2) version + - setDoubleQR2Version() + - parameter: + - int version -> Version range :1-40。 + +Example: +```dart +iminPrinter.setDoubleQR2Version(2); +``` + + +## Print double QR code + - printDoubleQR() + - parameter: + - IminDoubleQRCodeStyle qr1 -> The first QR code setting。 + - IminDoubleQRCodeStyle qr2 -> The second QR code is set. + - int doubleQRSize -> Double QR code size (optional) + +IminDoubleQRCodeStyle Qr code Settings related API: + + | Property | explain | Type | default | + | --- | --- | --- | --- | + | text | Qr code content | String | - | + | level | Qr code error level (optional) | int | - | + | leftMargin | Left margin of QR code (optional) | int | - | + | version | Qr code version (optional) | int | - | + +Example: + +```dart +import 'package:imin_printer/enums.dart'; +import 'package:imin_printer/imin_style.dart'; ///Need to import + +iminPrinter.printDoubleQR( qrCode1: IminDoubleQRCodeStyle( + text: 'www.imin.sg', + ), + qrCode2: IminDoubleQRCodeStyle( + text: 'www.google.com', + ), + doubleQRSize: 5) +``` + +## Open the money box + - openCashBox() + - Not parameter: + +Example: +```dart + iminPrinter.openCashBox(); +``` + +## Unbundling the print service + - unBindService() + - Not parameter: + +Example: +```dart + iminPrinter.unBindService(); +``` + +## Reset printer parameters + - initPrinterParams() + - Not parameter: + +Example: +```dart + iminPrinter.initPrinterParams(); +``` + +## Get the printer serial number + - getPrinterSerialNumber() + - Not parameter: + +Example: +```dart + iminPrinter.getPrinterSerialNumber().then((value){ + // serial number + print(value); + }); +``` + +## Get the printer model + - getPrinterModelName + - Not parameter: + +Example: +```dart + iminPrinter.getPrinterModelName().then((value){ + //printer model + print(value); + }); +``` + +## Get the printer thermal head model + - getPrinterThermalHead() + - Not parameter: + +Example: +```dart + iminPrinter.getPrinterThermalHead().then((value){ + // printer thermal head model + print(value); + }); +``` + +## Gets the printer firmware version number + - getPrinterFirmwareVersion() + - Not parameter: + +Example: +```dart + iminPrinter.getPrinterFirmwareVersion().then((value){ + // printer firmware version number + print(value); + }) +``` + +## Gets the print service version number + - getServiceVersion() + - Not parameter: + +Example: +```dart + iminPrinter.getServiceVersion().then((value){ + /// print service version number + print(value); + }) +``` + +## Gets the printer hardware version number + - getPrinterHardwareVersion() + - Not parameter: + +Example: +```dart + iminPrinter.getPrinterHardwareVersion().then((value){ + // printer hardware version number + print(value); + }) +``` + + +## Get the pid vid of the USB connection + - getUsbPrinterVidPid() + - Not parameter: + +Example: +```dart + iminPrinter.getUsbPrinterVidPid().then((value){ + // pid vid for USB connection + print(value); + }); +``` + +## Gets the name of the connected USB device + - getUsbDevicesName() + - Not parameter: + +Example: +```dart + iminPrinter.getUsbDevicesName().then((value){ + // name of the connected USB device + print(value); + }); +``` + +## Get the printing density + - getPrinterDensity() + - Not parameter: + +Example: +```dart + iminPrinter.getPrinterDensity().then((value){ + // printing density + print(value); + }); +``` + +## Getting the print length + - getPrinterPaperDistance() + - Not parameter: + +Example: +```dart + iminPrinter.getPrinterPaperDistance().then((value){ + // print length + print(value); + }); +``` + +## Gets the current printer speed + - getPrinterSpeed() + - Not parameter: + +Example: +```dart + iminPrinter.getPrinterSpeed().then((value){ + // current printer speed + print(value); + }); +``` + +## Get the paper size set by the current printer + - getPrinterPaperType() + - Not parameter: + + +Example: +```dart + iminPrinter.getPrinterPaperType().then((value){ + // Paper specifications set before printer + print(value); + }); +``` + +## Get the number of cuts + - getPrinterCutTimes() + - Not parameter: + + +Example: +```dart + iminPrinter.getPrinterCutTimes().then((value){ + // Get the number of cuts + print(value); + }); +``` + +## Gets the current printer mode + - getPrinterMode() + - Not parameter: + + +Example: +```dart + iminPrinter.getPrinterMode().then((value){ + // current printer mode + print(value); + }); +``` + +## Get the status of the money box + - getDrawerStatus() + - Not parameter: + +Example: +```dart + iminPrinter.getDrawerStatus().then((value){ + // Cash box status + print(value); + }); +``` + +## Gets the number of times the cash box was opened + - getOpenDrawerTimes() + - Not parameter: + +Example: +```dart + iminPrinter.getOpenDrawerTimes().then((value){ + // The number of times the cash box was opened + print(value); + }); +``` + + +## Print the self-test page + - printerSelfChecking() + - Not parameter: + +Example: +```dart + iminPrinter.printerSelfChecking(); +``` + +## ESC/POS Command printing + - sendRAWData() + - parameter: + - Uint8List bytes -> To print the data: + + +Example: +```dart + iminPrinter.sendRAWData(bytes); +``` + +## Sets the print global alignment + - setCodeAlignment() + - parameter: + - IminPrintAlign alignment -> Print the alignment: + +```dart +enum IminPrintAlign { left, center, right } +``` + +Example: + +```dart +import 'package:imin_printer/enums.dart'; /// Must import + + iminPrinter.setCodeAlignment(IminPrintAlign.left) +``` + +## Sets the font to print + - setTextBitmapTypeface() + - parameter: + - IminTypeface typeface -> Font type: + + +```dart +enum IminTypeface { + typefaceDefault, + typefaceMonospace, + typefaceDefaultBold, + typefaceSansSerif, + typefaceSerif +} +``` + +Example: +```dart +import 'package:imin_printer/enums.dart'; /// Must import + + iminPrinter.setTextBitmapTypeface(IminTypeface.typefaceDefault) +``` + +## Set the print font size for text images + - setTextBitmapSize() + - parameter: + - int size -> Font size: + +Example: +```dart + iminPrinter.setTextBitmapSize(16) +``` + +## Set the print font style for text images + - setTextBitmapStyle() + - parameter: + - IminFontStyle style -> Text images print font styles: + +```dart +enum IminFontStyle { normal, bold, italic, boldItalic } +``` + +Example: +```dart +import 'package:imin_printer/enums.dart'; /// Must import + + iminPrinter.setTextBitmapStyle(IminFontStyle.italic); +``` + +## Sets the text font delete line + - setTextBitmapStrikeThru() + - parameter: + - bool strikeThru -> Whether to delete the line + +Example: +```dart + + iminPrinter.setTextBitmapStrikeThru(true); +``` + +## Sets the text font underline + - setTextBitmapUnderline() + - parameter: + - bool haveUnderline -> Whether to underline or not: + +Example: +```dart + iminPrinter.setTextBitmapUnderline(true); +``` + +## Sets the line height of the text font + - setTextBitmapLineSpacing() + - parameter: + - double lineHeight -> LineHeight: + +Example: +```dart + iminPrinter.setTextBitmapLineSpacing(1); +``` + +## Sets text font spacing + - setTextBitmapLetterSpacing() + - parameter + - double space -> spacing: + +Examples: +```dart + iminPrinter.setTextBitmapLetterSpacing(1); +``` + +## Sets the text font to reverse whitening + - setTextBitmapAntiWhite() + - parameter + - bool antiWhite -> Whether it is anti-white: + + +Examples: +```dart + iminPrinter.setTextBitmapAntiWhite(true); +``` + +## The images are processed in monochrome and printed + - printSingleBitmapColorChart() + - parameter + - dynamic img -> Image path url or image binary stream. + - IminPictureStyle pictureStyle -> Image styles (optional) + +IminPictureStyle Related API: + + | Property | explain | Type | default | + | ---- | ---- | ---- | ---- | + | width | Image width | int | None | + | height | Image height | int| None | + | alignment | The alignment of the printed picture | enum IminPrintAlign { left, center, right } | None | + +```dart + enum IminPrintAlign { left, center, right } +``` + +Examples: +```dart +import 'package:imin_printer/imin_style.dart'; /// If you pass an image style item, you need to import it +import 'package:imin_printer/enums.dart'; /// If you pass an image style item, you need to import it + +/// Easy to use +iminPrinter.printSingleBitmapColorChart(Uint8List.fromList([0x1B, 0x2A, 0x00, 0x00, 0x00, 0])); + +/// Passing an image uses an image binary stream and styles the image +iminPrinter.printSingleBitmapColorChart( + Uint8List.fromList([0x1B, 0x2A, 0x00, 0x00, 0x00, 0]) + pictureStyle: IminPictureStyle( + alignment: IminPrintAlign.center, + ) + ) + + +/// Pass the url for the image and style the image +iminPrinter.printSingleBitmapColorChart( + 'https://www.example.com/image.jpg', + pictureStyle: IminPictureStyle( + alignment: IminPrintAlign.center, + width: 250, + height: 50, + )); +``` + +## Enter transaction mode + - enterPrinterBuffer() + - Parameters: + - bool isClean -> Whether to clear the print buffer + +Examples: + ```dart + iminPrinter.enterPrinterBuffer(true); + ``` + +## Commit transaction + - commitPrinterBuffer() + - Not parameters + +Examples: + ```dart + iminPrinter.commitPrinterBuffer(); + ``` + + ## Exiting transaction mode + - exitPrinterBuffer() + - Parameters: + - bool isCommit -> Whether to clear the print buffer + + +Examples: + ```dart + iminPrinter.exitPrinterBuffer(); + ``` + +## Gets the font code page + - getFontCodepage() + - Not parameters + + +Examples: + ```dart + iminPrinter.getFontCodepage((value){ + print(value); /// Gets the font code page + }); + ``` + +## Set the font code page + - setFontCodepage() + - parameters: + - int codepage -> Font code page + +Examples: + ```dart + iminPrinter.setFontCodepage(0); + ``` + +## Gets the current font codepage + - getCurCodepage() + - Not parameters + + Examples: + ```dart + iminPrinter.getCurCodepage((value){ + print(value); /// Current font code page + }); + ``` + + ## Getting a list of encodings + - getEncodeList() + - Not parameters + + +Examples: + ```dart + iminPrinter.getEncodeList((value){ + print(value); // Print a list of encodings + }); + ``` + + ## Set printer code + - setPrinterEncode() + - parameters: + - int encode -> Encoding + + +Examples: + ```dart + iminPrinter.setPrinterEncode(1); + ``` + + ## Get the current encoding + - getCurEncode() + - Not parameters + + Examples: + ```dart + iminPrinter.getCurEncode((value){ + print(value); // Current encoding + }); + ``` + + ## Gets a list of concentrations printed by the printer + - getPrinterDensityList() + - Not parameters + - Return value: + - List -> Print a list of concentrations + +Examples: + ```dart + iminPrinter.getPrinterDensityList((value){ + print(value); // The printer prints a list of concentrations + }); +``` + +## Gets a list of printer speeds + - getPrinterSpeedList() + - Not parameters + - Return value: + - List -> Print speed list + +Examples: + ```dart + iminPrinter.getPrinterSpeedList((value){ + print(value); // A list of printer speeds + }); +``` + +## Set the printer's printing speed + - setPrinterSpeed() + - parameters: + - int speed -> Printing speed + +Examples: + ```dart + iminPrinter.setPrinterSpeed(1); +``` + +## Get the printer print speed + - getPrinterSpeed() + - Not parameters + - Return value: + - int -> Printing speed + +Examples: + ```dart + iminPrinter.getPrinterSpeed((value) { + print(value); // Printer printing speed + }); +``` + +## Gets a list of printer paper types + - getPrinterPaperTypeList() + - Not parameters + - Return value: + - List -> List of paper types + + Examples: + ```dart + iminPrinter.getPrinterPaperTypeList((value) { + print(value); // List of paper types + }); +``` \ No newline at end of file diff --git a/docs/v2/quickstart.md b/docs/v2/quickstart.md index 0166403..c45e8ec 100644 --- a/docs/v2/quickstart.md +++ b/docs/v2/quickstart.md @@ -1 +1,60 @@ -dfasdas \ No newline at end of file +# Quick start + +## Create a flutter project +In 'windows system (cmd)' or 'Macos system (Terminal)' command line tool following command +```bash + flutter create my_app +``` + +## Install the iMin printing plug-in + Install the internal print plugin using iMin in your generated flutter project. + Run the following command in your flutter project: +```bash +flutter pub add imin_printer +``` +Or add in 'pubspec.yaml' +```yaml +dependencies: + imin_printer: ^0.5.7 +``` + +## Use the print plug-in in your project + +Use the print plugin in the 'lib/main.dart' file in the flutter project +```dart +import 'package:imin_printer/imin_printer.dart'; + +void main() async { + runApp(const MyApp()); +} + +class MyApp extends StatefulWidget { + const MyApp({super.key}); + @override + State createState() => _MyAppState(); +} + +class _MyAppState extends State { + final iminPrinter = IminPrinter(); + @override + void initState() { + super.initState(); + } + @override + Widget build(BuildContext context) { + return MaterialApp( + home: Scaffold( + body: Center( + child: ElevatedButton( + onPressed: () { + iminPrinter.printText("Hello World"); + }, + child: const Text('Print text'), + ) + ) + ) + ) + } +} + +``` \ No newline at end of file diff --git a/docs/zh-cn/README.md b/docs/zh-cn/README.md index 32072f8..15bf112 100644 --- a/docs/zh-cn/README.md +++ b/docs/zh-cn/README.md @@ -10,4 +10,4 @@ iMin 产品的内置打印机⼀共有 2 种规格: - 58mm 纸张宽度,不带切⼑,如 D1、D1 Pro、M2 Max 搭载了这种打印机 -App 开发者可以使⽤flutter⽅式调⽤内置热敏打印机 查看[快速开始](/zh-cn/quickstart.md)了解详情。 +App 开发者可以使⽤flutter⽅式调⽤内置热敏打印机 查看[快速开始](/zh-cn/quickstart)了解详情。 diff --git a/docs/zh-cn/_navbar.md b/docs/zh-cn/_navbar.md index 02c37f4..f1d39d7 100644 --- a/docs/zh-cn/_navbar.md +++ b/docs/zh-cn/_navbar.md @@ -2,5 +2,5 @@ * [:uk: English](/) * [:cn: 中文](/zh-cn/) * SDK版本 - * [v1](/zh-cn/) - * [v2](zh-cn/v2/) \ No newline at end of file + * [v1.0](/zh-cn/) + * [v2.0](zh-cn/v2/) \ No newline at end of file diff --git a/docs/zh-cn/api.md b/docs/zh-cn/api.md index 553a15a..c6bf127 100644 --- a/docs/zh-cn/api.md +++ b/docs/zh-cn/api.md @@ -30,6 +30,7 @@ iminPrinter.printAndLineFeed(); ``` + ## 走纸若干行,自定义高度 - printAndFeedPaper() - 参数: @@ -60,6 +61,234 @@ iminPrinter.partialCut(); ``` +## 设置对齐方式 + - setAlignment + - 参数: + - IminPrintAlign alignment -> 对齐方式 + +```dart + enum IminPrintAlign { left, center, right } +``` + +示例: +```dart +import 'package:imin_printer/enums.dart'; ///需要导入 + iminPrinter.setAlignment(IminPrintAlign.center); +``` + +## 设置文字大小 + - setTextSize() + - 参数: + - int size -> 字体大小 + +示例: +```dart + iminPrinter.setTextSize(25); +``` + +## 设置文字字体 + - setTextTypeface() + - 参数: + - IminTypeface typeface -> 字体 + +```dart +enum IminTypeface { + typefaceDefault, + typefaceMonospace, + typefaceDefaultBold, + typefaceSansSerif, + typefaceSerif +} +``` + +示例: +```dart +import 'package:imin_printer/enums.dart'; ///需要导入 + + iminPrinter.setTextTypeface(IminTypeface.typefaceMonospace); +``` + +## 设置文字样式 + - setTextStyle() + - 参数: + - IminFontStyle style -> 文字样式 + +```dart + enum IminFontStyle { normal, bold, italic, boldItalic } +``` + +示例: +```dart +import 'package:imin_printer/enums.dart'; ///需要导入 + + + iminPrinter.setTextStyle(IminFontStyle.bold); +``` + +## 设置文字行间距 + - setTextLineSpacing() + - 参数: + - double space -> 行间距 + +示例: +```dart + iminPrinter.setTextLineSpacing(1.0f); +``` + +## 设置打印文字宽度 + - setTextWidth() + - 参数: + - int width -> 宽度 + +示例: +```dart + iminPrinter.setTextWidth(200); +``` + +## 打印文字 + - printText() + - 参数: + - String text -> 打印文字 + - IminTextStyle style -> 打印文字相关设置项(可选) + +IminTextStyle 相关API: + + | 属性 | 说明 | 类型 | 默认值 | + | ---- | ---- | ---- | ---- | + | wordWrap | 打印文字内容是否加入`\n`, `true`或者不设置自动加`\n`, 为`false`不加`\n` | bool | 无 | + | fontSize | 打印文字大小 | int | 无 | + | space | 打印文字行间距 | double | 无 | + | width | 打印文字宽度 | int | 无 | + | typeface | 打印文字字体 | IminTypeface | 无 | + | fontStyle | 打印文字样式 | IminFontStyle | 无 | + | align | 打印文字对齐方式 | IminPrintAlign | 无 | + +```dart +enum IminTypeface { + typefaceDefault, + typefaceMonospace, + typefaceDefaultBold, + typefaceSansSerif, + typefaceSerif +} +enum IminFontStyle { normal, bold, italic, boldItalic } + +enum IminPrintAlign { left, center, right } +``` + +示例: +```dart +import 'package:imin_printer/imin_style.dart'; ///需要导入 +import 'package:imin_printer/enums.dart'; ///需要导入 + +///简单使用 +iminPrinter.printText("Hello World"); + +///设置打印文字相关设置项 +iminPrinter.printText("Hello World", IminTextStyle( + fontSize: 20, + space: 1.0f, + width: 100, + typeface: IminTypeface.typefaceDefaultBold, + fontStyle: IminFontStyle.boldItalic, + align: IminPrintAlign.center +)); + +``` + +## 打印反白文字 + - printAntiWhiteText() + - 参数: + - String text -> 打印文字 + - IminTextStyle style -> 打印文字相关设置项(可选) + +IminTextStyle 相关API: + + | 属性 | 说明 | 类型 | 默认值 | + | ---- | ---- | ---- | ---- | + | wordWrap | 打印文字内容是否加入`\n`, `true`或者不设置自动加`\n`, 为`false`不加`\n` | bool | 无 | + | fontSize | 打印文字大小 | int | 无 | + | space | 打印文字行间距 | double | 无 | + | width | 打印文字宽度 | int | 无 | + | typeface | 打印文字字体 | IminTypeface | 无 | + | fontStyle | 打印文字样式 | IminFontStyle | 无 | + | align | 打印文字对齐方式 | IminPrintAlign | 无 | + +```dart +enum IminTypeface { + typefaceDefault, + typefaceMonospace, + typefaceDefaultBold, + typefaceSansSerif, + typefaceSerif +} +enum IminFontStyle { normal, bold, italic, boldItalic } + +enum IminPrintAlign { left, center, right } +``` + +示例: +```dart +import 'package:imin_printer/imin_style.dart'; ///需要导入 +import 'package:imin_printer/enums.dart'; ///需要导入 + +///简单使用 +iminPrinter.printAntiWhiteText("Hello World"); + +///设置打印文字相关设置项 +iminPrinter.printAntiWhiteText("Hello World", IminTextStyle( + fontSize: 20, + space: 1.0f, + width: 100, + typeface: IminTypeface.typefaceDefaultBold, + fontStyle: IminFontStyle.boldItalic, + align: IminPrintAlign.center +)); + +``` + + +## 打印表格 + - printColumnsText() + - 参数: + - List cols -> 列数组 + +ColumnMaker 相关API: + + | 属性 | 说明 | 类型 | 默认值 | + | ---- | ---- | ---- | ---- | + | text | 列内容 | String | 无 | + | width | 列宽度 | int | 无 | + | align | 列对齐方式 | IminPrintAlign | 无 | + | fontSize | 字体大小 | int | 无 | + +示例: +```dart +import 'package:imin_printer/column_maker.dart'; ///需要导入 +import 'package:imin_printer/enums.dart'; ///需要导入 + + + iminPrinter.printColumnsText(cols: [ + ColumnMaker( + text: '1', + width: 1, + fontSize: 26, + align: IminPrintAlign.center), + ColumnMaker( + text: 'iMin', + width: 2, + fontSize: 26, + align: IminPrintAlign.left), + ColumnMaker( + text: 'iMin', + width: 1, + fontSize: 26, + align: IminPrintAlign.right) + ]) + +``` + + ## 打印单张图片 - printSingleBitmap() - 参数: @@ -71,7 +300,7 @@ IminPictureStyle 相关API: | 属性 | 说明 | 类型 | 默认值 | | ---- | ---- | ---- | ---- | | width | 图片的宽度 | int | 无 | - | height | 图片的宽度 | int| 无 | + | height | 图片的高度 | int| 无 | | alignment | 打印的图片对齐方式 | enum IminPrintAlign { left, center, right } | 无 | @@ -118,7 +347,7 @@ IminPictureStyle 相关API: | 属性 | 说明 | 类型 | 默认值 | | ---- | ---- | ---- | ---- | | width | 图片的宽度 | int | 无 | - | height | 图片的宽度 | int| 无 | + | height | 图片的高度 | int| 无 | | alignment | 打印的图片对齐方式 | enum IminPrintAlign { left, center, right } | 无 | ```dart @@ -165,7 +394,7 @@ IminBaseStyle 相关API: | 属性 | 说明 | 类型 | 默认值 | | ---- | ----| ----| ---- | | width | 图片的宽度 | int | 无 | -| height | 图片的宽度 | int| 无 | +| height | 图片的高度 | int| 无 | 示例: ```dart @@ -283,6 +512,7 @@ iminPrinter.setDoubleQRSize(4); ```dart iminPrinter.setDoubleQR1Level(2); ``` + ## 设置双二维码(QR2)误差 - setDoubleQR2Level() - 参数: @@ -404,4 +634,125 @@ enum IminBarcodeTextPos { import 'package:imin_printer/enums.dart'; iminPrinter.setBarCodeContentPrintPos(IminBarcodeTextPos.textAbove); +``` + +## 打印条形码 + - printBarCode() + - 参数: + - IminBarcodeType barCodeType -> 条形码类型。 + - String barCodeContent -> 条形码内容。 + - IminBarCodeStyle style -> 条形码样式相关设置项(可选)。 + +IminBarCodeStyle 相关API: + | 属性 | 描述 | 类型 | 默认值 | + | --- | --- | --- | --- | + | width | 条形码宽度 | int | 无 | + | height | 条形码高度 | int | 无 | + | position | 条形码内容打印位置 | IminBarcodeTextPos | 无 | + | align | 条形码对齐方式 | IminPrintAlign | 无 | + + +```dart +enum IminBarcodeTextPos { + noText(0), + textAbove(1), + textBelow(2), + both(3); +} + +enum IminPrintAlign { left, center, right } + +enum IminBarcodeType { + upcA(0), + upcE(1), + jan13(2), + jan8(3), + code39(4), + itf(5), + codabar(6), + code93(7), + code128(8); +} +``` + +示例: +```dart +import 'package:imin_printer/imin_style.dart'; +import 'package:imin_printer/enums.dart'; + + /// 简单使用 + iminPrinter.printBarCode(IminBarcodeType.jan13, "0123456789012",); + + /// 设置条形码样式 + iminPrinter.printBarCode( + IminBarcodeType.jan13, "0123456789012", + style: IminBarCodeStyle( + width: 150, + height: 50, + align: IminPrintAlign.center, + position: IminBarcodeTextPos.textAbove)); +``` + + +## 打印条形码设置格式 + - printBarCodeToBitmapFormat() + - 参数: + - String barCodeContent -> 条形码内容。 + - int width -> 条形码宽度。 + - int height -> 条形码高度。 + - IminBarCodeToBitmapFormat codeFormat -> 条形码格式。 + +```dart +enum IminBarCodeToBitmapFormat { + aztec, + codabar, + code39, + code93, + code128, + dataMatrix, + ean13, + itf, + maxicode, + pdf417, + qrCode, + rss14, + rssExpanded, + upcA, + upcE, + upcEanExteNsion; +} +``` + +示例: +```dart +import 'package:imin_printer/enums.dart'; + + iminPrinter.printBarCodeToBitmapFormat( "0123456789012", 100, 50, IminBarCodeToBitmapFormat.code39); + +``` + + +## 打开钱箱 + - openCashBox() + - 无参数: + +```dart + iminPrinter.openCashBox(); +``` + +## 复位打印机 + - resetDevice() + - 无参数: + +```dart + iminPrinter.resetDevice(); +``` + +## 设置初始化打印机 + - setInitIminPrinter + - 参数: + - bool isDefault -> 是否默认设置。 + +```dart + iminPrinter.setInitIminPrinter(true); ``` \ No newline at end of file diff --git a/docs/zh-cn/v2/README.md b/docs/zh-cn/v2/README.md index 1acaaf9..31ad854 100644 --- a/docs/zh-cn/v2/README.md +++ b/docs/zh-cn/v2/README.md @@ -10,4 +10,4 @@ iMin 产品的内置打印机⼀共有 2 种规格: - 58mm 纸张宽度,不带切⼑,如 D1、D1 Pro、M2 Max 搭载了这种打印机 -App 开发者可以使⽤flutter⽅式调⽤内置热敏打印机 查看[快速开始](/zh-cn/v2/quickstart.md)了解详情。 +App 开发者可以使⽤flutter⽅式调⽤内置热敏打印机 查看[快速开始](/zh-cn/v2/quickstart)了解详情。 diff --git a/docs/zh-cn/v2/api.md b/docs/zh-cn/v2/api.md index be41eaf..b7ebc45 100644 --- a/docs/zh-cn/v2/api.md +++ b/docs/zh-cn/v2/api.md @@ -17,4 +17,1126 @@ // 打印机状态 print(state['msg']); }); +``` + +## 打印表格 (宽度数值的方式) + - printColumnsText() + - 参数: + - List cols -> 列数组 + +ColumnMaker 相关API: + + | 属性 | 说明 | 类型 | 默认值 | + | ---- | ---- | ---- | ---- | + | text | 列内容 | String | 无 | + | width | 列宽度 | int | 无 | + | align | 列对齐方式 | IminPrintAlign | 无 | + | fontSize | 字体大小 | int | 无 | + +示例: +```dart +import 'package:imin_printer/column_maker.dart'; ///需要导入 +import 'package:imin_printer/enums.dart'; ///需要导入 + + + iminPrinter.printColumnsText(cols: [ + ColumnMaker( + text: '1', + width: 1, + fontSize: 26, + align: IminPrintAlign.center), + ColumnMaker( + text: 'iMin', + width: 2, + fontSize: 26, + align: IminPrintAlign.left), + ColumnMaker( + text: 'iMin', + width: 1, + fontSize: 26, + align: IminPrintAlign.right) + ]) + +``` + +## 打印表格 (宽度权重比例) + - printColumnsString() + - 参数: + - List cols -> 列数组 + +ColumnMaker 相关API: + + | 属性 | 说明 | 类型 | 默认值 | + | ---- | ---- | ---- | ---- | + | text | 列内容 | String | 无 | + | width | 列宽度 | int | 无 | + | align | 列对齐方式 | IminPrintAlign | 无 | + | fontSize | 字体大小 | int | 无 | + +示例: +```dart +import 'package:imin_printer/column_maker.dart'; ///需要导入 +import 'package:imin_printer/enums.dart'; ///需要导入 + + + iminPrinter.printColumnsString(cols: [ + ColumnMaker( + text: '1', + width: 1, + fontSize: 26, + align: IminPrintAlign.center), + ColumnMaker( + text: 'iMin', + width: 2, + fontSize: 26, + align: IminPrintAlign.left), + ColumnMaker( + text: 'iMin', + width: 1, + fontSize: 26, + align: IminPrintAlign.right) + ]) + +``` + +## 打印文字图片 + - printTextBitmap() + - 参数: + - String text -> 打印文字 + - IminTextPictureStyle style -> 打印文字图片相关设置项(可选) + +IminTextPictureStyle 相关API: + + | 属性 | 说明 | 类型 | 默认值 | + | ---- | ---- | ---- | ---- | + | wordWrap | 打印文字内容是否加入`\n`, `true`或者不设置自动加`\n`, 为`false`不加`\n` | bool | 无 | + | fontSize | 打印文字大小 | int | 无 | + | typeface | 打印文字字体 | IminTypeface | 无 | + | letterSpacing | 打印文字间距 取值:1-60| double | 无 | + | underline | 打印文字下划线 | bool | 无 | + | throughline | 打印文字删除线 | bool | 无 | + | lineHeight | 打印文字行高 取值:1-255 | double | 无 | + | reverseWhite | 打印文字是否反白 | bool | 无 | + | fontStyle | 打印文字样式 | IminFontStyle | 无 | + | align | 打印文字对齐方式 | IminPrintAlign | 无 | + +```dart +enum IminTypeface { + typefaceDefault, + typefaceMonospace, + typefaceDefaultBold, + typefaceSansSerif, + typefaceSerif +} +enum IminFontStyle { normal, bold, italic, boldItalic } + +enum IminPrintAlign { left, center, right } +``` + +示例: +```dart +import 'package:imin_printer/imin_style.dart'; ///需要导入 +import 'package:imin_printer/enums.dart'; ///需要导入 + +///简单使用 +iminPrinter.printTextBitmap("Hello World"); + +///设置打印文字图片相关设置项 +iminPrinter.printTextBitmap("Hello World", IminTextPictureStyle( + fontSize: 20, + letterSpacing: 1, + typeface: IminTypeface.typefaceDefaultBold, + fontStyle: IminFontStyle.boldItalic, + align: IminPrintAlign.center +)); + +``` + + +## 走纸一行 + - printAndLineFeed() + - 无参数 + +示例: +```dart + iminPrinter.printAndLineFeed(); +``` + +## 走纸若干行,自定义高度 + - printAndFeedPaper() + - 参数: + - int lineHeight 行高, 取值范围: 1-1016 + +示例: +```dart + iminPrinter.printAndFeedPaper(100); +``` + +## 切刀(切纸部分切) +此方法只适用于带`切刀功能`的iMin(一敏)设备。 + - partialCut() + - 无参数 + +示例: +```dart + iminPrinter.partialCut(); +``` + +## 切刀(切纸全切) + 此方法只适用于带`切刀功能`的iMin(一敏)设备。 + - fullCut() + - 无参数 + +示例: +```dart + iminPrinter.fullCut(); +``` + + +## 打印单张图片 + - printSingleBitmap() + - 参数: + - dynamic img -> 图片路径url或者图片二进制流。 + - IminPictureStyle pictureStyle -> 图片样式相关设置(可选)。 + +IminPictureStyle 相关API: + + | 属性 | 说明 | 类型 | 默认值 | + | ---- | ---- | ---- | ---- | + | width | 图片的宽度 | int | 无 | + | height | 图片的高度 | int| 无 | + | alignment | 打印的图片对齐方式 | enum IminPrintAlign { left, center, right } | 无 | + + +```dart + enum IminPrintAlign { left, center, right } +``` + +示例: +```dart +import 'package:imin_printer/imin_style.dart'; ///如果传递图片样式设置项需要导入 +import 'package:imin_printer/enums.dart'; ///如果传递图片样式设置项需要导入 + +/// 简单使用 +iminPrinter.printSingleBitmap(Uint8List.fromList([0x1B, 0x2A, 0x00, 0x00, 0x00, 0])); + +/// 传递图片使用图片二进制流并设置图片样式 +iminPrinter.printSingleBitmap( + Uint8List.fromList([0x1B, 0x2A, 0x00, 0x00, 0x00, 0]) + pictureStyle: IminPictureStyle( + alignment: IminPrintAlign.center, + ) + ) + + +/// 传递图片使用url地址并设置图片样式 +iminPrinter.printSingleBitmap( + 'https://www.example.com/image.jpg', + pictureStyle: IminPictureStyle( + alignment: IminPrintAlign.center, + width: 250, + height: 50, + )); +``` + +## 打印多张图片 + - printMultiBitmap() + - 参数: + - List img -> 图片路径url数组或者图片二进制流数组。 + - IminPictureStyle pictureStyle -> 图片样式相关设置(可选)。 + +IminPictureStyle 相关API: + + | 属性 | 说明 | 类型 | 默认值 | + | ---- | ---- | ---- | ---- | + | width | 图片的宽度 | int | 无 | + | height | 图片的高度 | int| 无 | + | alignment | 打印的图片对齐方式 | enum IminPrintAlign { left, center, right } | 无 | + +```dart + enum IminPrintAlign { left, center, right } +``` + +示例: +```dart +import 'package:imin_printer/imin_style.dart'; ///如果传递图片样式设置项需要导入 +import 'package:imin_printer/enums.dart'; ///如果传递图片样式设置项需要导入 + +/// 简单使用 + +iminPrinter.printMultiBitmap([Uint8List.fromList([0x1B, 0x2A, 0x00, 0x00, 0x00, 0]), Uint8List.fromList([0x1B, 0x2A, 0x00, 0x00]]); + +/// 传递图片使用图片二进制流并设置图片样式 +iminPrinter.printMultiBitmap( + [Uint8List.fromList([0x1B, 0x2A, 0x00, 0x00, 0x00, 0]), Uint8List.fromList([0x1B, 0x2A, 0x00, 0x00])], + pictureStyle: IminPictureStyle( + alignment: IminPrintAlign.center, + ) + ) + + +/// 传递图片使用url地址并设置图片样式 +iminPrinter.printSingleBitmap( + ['https://www.example.com/image.jpg', 'https://www.example.com/image.jpg'], + pictureStyle: IminPictureStyle( + alignment: IminPrintAlign.center, + width: 250, + height: 50, + )); +``` + + +## 设置二维码大小 + - setQrCodeSize + - 参数: + - int size -> 二维码大小。 + +示例: +```dart +iminPrinter.setQrCodeSize(5); // 设置二维码大小为5。 +``` + +## 设置二维码和条形码左边距 + - setLeftMargin + - 参数: + - int margin -> 左边距。 + +示例: +```dart +iminPrinter.setLeftMargin(5); // 设置左边距为5。 +``` + + +## 设置二维码的纠错级别 + - setQrCodeErrorCorrectionLev + - 参数: + - IminQrcodeCorrectionLevel level -> 纠错级别。 + +```dart + enum IminQrcodeCorrectionLevel { + levelL(48), + levelM(49), + levelQ(50), + levelH(51); + } +``` + +示例: +```dart +import 'package:imin_printer/enums.dart'; ///需要导入 + + +iminPrinter.IminQrcodeCorrectionLevel(IminQrcodeCorrectionLevel.levelL); + +``` + + +## 打印二维码 + - printQrCode + - 参数: + - String content -> 二维码内容。 + - IminQrCodeStyle qrCodeStyle -> 二维码样式相关(可选) + +IminQrCodeStyle 二维码样式相关API: + + | 属性 | 描述 | 类型 | 默认值 | + | --- | --- | --- | --- | + | qrSize | 二维码大小 | int | 无 | + | align | 二维码对齐方式 | enum IminPrintAlign { left, center, right } | 无 | + | leftMargin | 二维码左边距 | int | 无 | + | errorCorrectionLevel | 纠错级别 | enum IminQrcodeCorrectionLevel { levelL(48), levelM(49), levelQ(50), levelH(51)} | 无 | + +```dart +enum IminPrintAlign { left, center, right } + +enum IminQrcodeCorrectionLevel { + levelL(48), + levelM(49), + levelQ(50), + levelH(51); +} +``` + +示例: +```dart +import 'package:imin_printer/enums.dart'; ///需要导入 + + iminPrinter.printQrCode('https://www.baidu.com', + IminQrCodeStyle( + qrSize: 4, + errorCorrectionLevel: IminQrcodeCorrectionLevel.levelH, + leftMargin: 2, + align: IminPrintAlign.left + )); +``` + +## 设置条形码宽度 + - setBarCodeWidth() + - 参数: + - int width -> 条形码宽度 取值范围:2-6。 + +示例: +```dart +iminPrinter.setBarCodeWidth(2); +``` + +## 设置条形码高度 + - setBarCodeHeight() + - 参数: + - int height -> 条形码高度 取值范围:1-255。 + +示例: +```dart +iminPrinter.setBarCodeHeight(2); +``` + +## 打印条形时HRI字符的打印位置 + - setBarCodeContentPrintPos() + - 参数: + - IminBarcodeTextPos position -> 条形码内容打印位置。 + +```dart +enum IminBarcodeTextPos { + noText(0), + textAbove(1), + textBelow(2), + both(3); +} +``` +示例: +```dart +iminPrinter.setBarCodeContentPrintPos(IminBarcodeTextPos.textAbove); +``` + +## 设置纸张规格 + - setPageFormat() + - 参数: + - int style -> 纸张规格 0-80mm 1-58mm; + +示例: +```dart + iminPrinter.setPageFormat(1); +``` + + +## 打印条形码 + - printBarCode() + - 参数: + - IminBarcodeType barCodeType -> 条形码类型。 + - String barCodeContent -> 条形码内容。 + - IminBarCodeStyle style -> 条形码样式相关设置项(可选)。 + +IminBarCodeStyle 相关API: + | 属性 | 描述 | 类型 | 默认值 | + | --- | --- | --- | --- | + | width | 条形码宽度 | int | 无 | + | height | 条形码高度 | int | 无 | + | position | 条形码内容打印位置 | IminBarcodeTextPos | 无 | + | align | 条形码对齐方式 | IminPrintAlign | 无 | + + +```dart +enum IminBarcodeTextPos { + noText(0), + textAbove(1), + textBelow(2), + both(3); +} + +enum IminPrintAlign { left, center, right } + +enum IminBarcodeType { + upcA(0), + upcE(1), + jan13(2), + jan8(3), + code39(4), + itf(5), + codabar(6), + code93(7), + code128(8); +} +``` + +示例: +```dart +import 'package:imin_printer/imin_style.dart'; +import 'package:imin_printer/enums.dart'; + + /// 简单使用 + iminPrinter.printBarCode(IminBarcodeType.jan13, "0123456789012",); + + /// 设置条形码样式 + iminPrinter.printBarCode( + IminBarcodeType.jan13, "0123456789012", + style: IminBarCodeStyle( + width: 150, + height: 50, + align: IminPrintAlign.center, + position: IminBarcodeTextPos.textAbove)); +``` + + +## 设置双二维码大小 + - setDoubleQRSize + - 参数: + - int qrSize -> 二维码大小。 + +示例: +```dart +iminPrinter.setDoubleQRSize(4); +``` + + +## 设置双二维码(QR1)误差 + - setDoubleQR1Level() + - 参数: + - int level -> 误差大小 取值范围:1-3。 + +示例: +```dart +iminPrinter.setDoubleQR1Level(2); +``` + + +## 设置双二维码(QR2)误差 + - setDoubleQR2Level() + - 参数: + - int level -> 误差大小 取值范围:1-3。 + +示例: +```dart +iminPrinter.setDoubleQR2Level(2); +``` + +## 设置双二维码(QR1) 左边距 + - setDoubleQR1MarginLeft() + - 参数: + - int leftMargin -> 左边距 取值范围:0-576。 + +示例: +```dart +iminPrinter.setDoubleQR1MarginLeft(2); +``` + +## 设置双二维码(QR2) 左边距 + - setDoubleQR2MarginLeft() + - 参数: + - int leftMargin -> 左边距 取值范围:0-576。 + +示例: +```dart +iminPrinter.setDoubleQR2MarginLeft(2); +``` + + +## 设置双二维码(QR1)版本 + - setDoubleQR1Version() + - 参数: + - int version -> 版本 取值范围:1-40。 + +示例: +```dart +iminPrinter.setDoubleQR1Version(2); +``` + +## 设置双二维码(QR2)版本 + - setDoubleQR2Version() + - 参数: + - int version -> 版本 取值范围:1-40。 + +示例: +```dart +iminPrinter.setDoubleQR2Version(2); +``` + + +## 打印双二维码 + - printDoubleQR() + - 参数: + - IminDoubleQRCodeStyle qr1 -> 第一个二维码设置。 + - IminDoubleQRCodeStyle qr2 -> 第二个二维码设置。 + - int doubleQRSize -> 双二维码大小(可选) + +IminDoubleQRCodeStyle 二维码设置相关API: + + | 属性 | 描述 | 类型 | 默认值 | + | --- | --- | --- | --- | + | text | 二维码内容 | String | - | + | level | 二维码误差等级(可选) | int | - | + | leftMargin | 二维码左边距(可选) | int | - | + | version | 二维码版本(可选) | int | - | + +示例: + +```dart +import 'package:imin_printer/enums.dart'; +import 'package:imin_printer/imin_style.dart'; ///需要导入 + +iminPrinter.printDoubleQR( qrCode1: IminDoubleQRCodeStyle( + text: 'www.imin.sg', + ), + qrCode2: IminDoubleQRCodeStyle( + text: 'www.google.com', + ), + doubleQRSize: 5) +``` + +## 打开钱箱 + - openCashBox() + - 无参数: + +示例: +```dart + iminPrinter.openCashBox(); +``` + +## 解绑打印服务 + - unBindService() + - 无参数: + +示例: +```dart + iminPrinter.unBindService(); +``` + +## 重置打印机参数 + - initPrinterParams() + - 无参数: + +示例: +```dart + iminPrinter.initPrinterParams(); +``` + +## 获取打印机版序列号 + - getPrinterSerialNumber() + - 无参数: + +示例: +```dart + iminPrinter.getPrinterSerialNumber().then((value){ + // 打印机版序列号 + print(value); + }); +``` + +## 获取打印机型号 + - getPrinterModelName + - 无参数: + +示例: +```dart + iminPrinter.getPrinterModelName().then((value){ + // 打印机型号 + print(value); + }); +``` + +## 获取打印机热敏头型号 + - getPrinterThermalHead() + - 无参数: + +示例: +```dart + iminPrinter.getPrinterThermalHead().then((value){ + // 打印机热敏头型号 + print(value); + }); +``` + +## 获取打印机固件版本号 + - getPrinterFirmwareVersion() + - 无参数: + +示例: +```dart + iminPrinter.getPrinterFirmwareVersion().then((value){ + // 打印机固件版本号 + print(value); + }) +``` + +## 获取打印服务版本号 + - getServiceVersion() + - 无参数: + +示例: +```dart + iminPrinter.getServiceVersion().then((value){ + // 打印服务版本号 + print(value); + }) +``` + +## 获取打印机硬件版本号 + - getPrinterHardwareVersion() + - 无参数: + +示例: +```dart + iminPrinter.getPrinterHardwareVersion().then((value){ + // 打印机硬件版本号 + print(value); + }) +``` + + +## 获取 USB 连接的 pid vid + - getUsbPrinterVidPid() + - 无参数: + +示例: +```dart + iminPrinter.getUsbPrinterVidPid().then((value){ + // USB 连接的 pid vid + print(value); + }); +``` + +## 获取连接的 USB Devices 的名称 + - getUsbDevicesName() + - 无参数: + +示例: +```dart + iminPrinter.getUsbDevicesName().then((value){ + // 连接的 USB Devices 的名称 + print(value); + }); +``` + +## 获取打印浓度 + - getPrinterDensity() + - 无参数: + +示例: +```dart + iminPrinter.getPrinterDensity().then((value){ + // 打印浓度 + print(value); + }); +``` + +## 获取打印长度 + - getPrinterPaperDistance() + - 无参数: + +示例: +```dart + iminPrinter.getPrinterPaperDistance().then((value){ + // 打印长度 + print(value); + }); +``` + +## 获取当前打印机速度 + - getPrinterSpeed() + - 无参数: + +示例: +```dart + iminPrinter.getPrinterSpeed().then((value){ + // 当前打印机速度 + print(value); + }); +``` + +## 获取当前打印机设定的纸张规格 + - getPrinterPaperType() + - 无参数: + + +示例: +```dart + iminPrinter.getPrinterPaperType().then((value){ + // 当前打印机设定的纸张规格 + print(value); + }); +``` + +## 获取切刀次数 + - getPrinterCutTimes() + - 无参数: + + +示例: +```dart + iminPrinter.getPrinterCutTimes().then((value){ + // 获取切刀次数 + print(value); + }); +``` + +## 获取当前打印机模式 + - getPrinterMode() + - 无参数: + +示例: +```dart + iminPrinter.getPrinterMode().then((value){ + // 当前打印机模式 + print(value); + }); +``` + +## 获取钱箱状态 + - getDrawerStatus() + - 无参数: + +示例: +```dart + iminPrinter.getDrawerStatus().then((value){ + // 钱箱状态 + print(value); + }); +``` + +## 获取钱箱打开的次数 + - getOpenDrawerTimes() + - 无参数: + +示例: +```dart + iminPrinter.getOpenDrawerTimes().then((value){ + // 钱箱打开的次数 + print(value); + }); +``` + + +## 打印自检页 + - printerSelfChecking() + - 无参数: + +示例: +```dart + iminPrinter.printerSelfChecking(); +``` + +## ESC/POS 指令打印 + - sendRAWData() + - Uint8List bytes -> 打印数据: + + +示例: +```dart + iminPrinter.sendRAWData(bytes); +``` + +## 设置打印全局对齐方式 + - setCodeAlignment() + - IminPrintAlign alignment -> 打印对齐方式: + +```dart +enum IminPrintAlign { left, center, right } +``` + +示例: + +```dart +import 'package:imin_printer/enums.dart'; /// 必须导入 + + iminPrinter.setCodeAlignment(IminPrintAlign.left) +``` + +## 设置打印的字体 + - setTextBitmapTypeface() + - IminTypeface typeface -> 字体类型: + + +```dart +enum IminTypeface { + typefaceDefault, + typefaceMonospace, + typefaceDefaultBold, + typefaceSansSerif, + typefaceSerif +} +``` + +示例: +```dart +import 'package:imin_printer/enums.dart'; /// 必须导入 + + iminPrinter.setTextBitmapTypeface(IminTypeface.typefaceDefault) +``` + +## 设置文本图片打印字体大小 + - setTextBitmapSize() + - int size -> 字体大小: + +示例: +```dart + iminPrinter.setTextBitmapSize(16) +``` + +## 设置文本图片打印字体样式 + - setTextBitmapStyle() + - 参数: + - IminFontStyle style -> 文本图片打印字体样式: + +```dart +enum IminFontStyle { normal, bold, italic, boldItalic } +``` + +示例: +```dart +import 'package:imin_printer/enums.dart'; /// 必须导入 + + iminPrinter.setTextBitmapStyle(IminFontStyle.italic); +``` + +## 设置文本字体删除线 + - setTextBitmapStrikeThru() + - 参数: + - bool strikeThru -> 是否删除线: + +示例: +```dart + + iminPrinter.setTextBitmapStrikeThru(true); +``` + +## 设置文本字体下划线 + - setTextBitmapUnderline() + - 参数: + - bool haveUnderline -> 是否下划线: + +示例: +```dart + iminPrinter.setTextBitmapUnderline(true); +``` + +## 设置文本字体的行高 + - setTextBitmapLineSpacing() + - 参数: + - double lineHeight -> 行高: + +示例: +```dart + iminPrinter.setTextBitmapLineSpacing(1); +``` + +## 设置文本字体字间距 + - setTextBitmapLetterSpacing() + - 参数: + - double space -> 间距: + +示例: +```dart + iminPrinter.setTextBitmapLetterSpacing(1); +``` + +## 设置文本字体反白 + - setTextBitmapAntiWhite() + - 参数: + - bool antiWhite -> 是否反白: + + +示例: +```dart + iminPrinter.setTextBitmapAntiWhite(true); +``` + +## 图片单色处理并打印 + - printSingleBitmapColorChart() + - 参数: + - dynamic img -> 图片路径url或者图片二进制流。 + - IminPictureStyle pictureStyle -> 图片样式(可选) + +IminPictureStyle 相关API: + + | 属性 | 说明 | 类型 | 默认值 | + | ---- | ---- | ---- | ---- | + | width | 图片的宽度 | int | 无 | + | height | 图片的高度 | int| 无 | + | alignment | 打印的图片对齐方式 | enum IminPrintAlign { left, center, right } | 无 | + +```dart + enum IminPrintAlign { left, center, right } +``` + +示例: +```dart +import 'package:imin_printer/imin_style.dart'; ///如果传递图片样式设置项需要导入 +import 'package:imin_printer/enums.dart'; ///如果传递图片样式设置项需要导入 + +/// 简单使用 +iminPrinter.printSingleBitmapColorChart(Uint8List.fromList([0x1B, 0x2A, 0x00, 0x00, 0x00, 0])); + +/// 传递图片使用图片二进制流并设置图片样式 +iminPrinter.printSingleBitmapColorChart( + Uint8List.fromList([0x1B, 0x2A, 0x00, 0x00, 0x00, 0]) + pictureStyle: IminPictureStyle( + alignment: IminPrintAlign.center, + ) + ) + + +/// 传递图片使用url地址并设置图片样式 +iminPrinter.printSingleBitmapColorChart( + 'https://www.example.com/image.jpg', + pictureStyle: IminPictureStyle( + alignment: IminPrintAlign.center, + width: 250, + height: 50, + )); +``` + +## 进入事务模式 + - enterPrinterBuffer() + - 参数: + - bool isClean -> 是否清空打印缓冲区 + + 示例: + ```dart + iminPrinter.enterPrinterBuffer(true); + ``` + +## 提交事务 + - commitPrinterBuffer() + - 无参数 + + 示例: + ```dart + iminPrinter.commitPrinterBuffer(); + ``` + + ## 退出事务模式 + - exitPrinterBuffer() + - 参数: + - bool isCommit -> 是否清空打印缓冲区 + + + 示例: + ```dart + iminPrinter.exitPrinterBuffer(); + ``` + +## 获取字体码页 + - getFontCodepage() + -无参数 + + +示例: + ```dart + iminPrinter.getFontCodepage((value){ + print(value); /// 获取字体码页 + }); + ``` + +## 设置字体码页 + - setFontCodepage() + - 参数: + - int codepage -> 字体码页 + + 示例: + ```dart + iminPrinter.setFontCodepage(0); + ``` + +## 获取当前字体码页 + - getCurCodepage() + - 无参数 + + 示例: + ```dart + iminPrinter.getCurCodepage((value){ + print(value); /// 当前字体码页 + }); + ``` + + ## 获取编码列表 + - getEncodeList() + - 无参数 + + + 示例: + ```dart + iminPrinter.getEncodeList((value){ + print(value); // 打印编码列表 + }); + ``` + ## 设置打印机编码 + - setPrinterEncode() + - 无参数 + + + 示例: + ```dart + iminPrinter.setPrinterEncode(1); + ``` + + ## 获取当前编码 + - getCurEncode() + - 无参数 + + 示例: + ```dart + iminPrinter.getCurEncode((value){ + print(value); // 当前编码 + }); + ``` + + ## 获取打印机打印浓度列表 + - getPrinterDensityList() + - 无参数 + - 返回值: + - List -> 打印浓度列表 + + 示例: + ```dart + iminPrinter.getPrinterDensityList((value){ + print(value); // 打印机打印浓度列表 + }); +``` + +## 获取打印机打印速度列表 + - getPrinterSpeedList() + - 无参数 + - 返回值: + - List -> 打印速度列表 + + 示例: + ```dart + iminPrinter.getPrinterSpeedList((value){ + print(value); // 打印机打印速度列表 + }); +``` + +## 设置打印机打印速度 + - setPrinterSpeed() + - 参数: + - int speed -> 打印速度 + + 示例: + ```dart + iminPrinter.setPrinterSpeed(1); +``` + +## 获取打印机打印速度 + - getPrinterSpeed() + - 无参数 + - 返回值: + - int -> 打印速度 + + 示例: + ```dart + iminPrinter.getPrinterSpeed((value) { + print(value); // 打印机打印速度 + }); +``` + +## 获取打印机走纸类型列表 + - getPrinterPaperTypeList() + - 无参数 + - 返回值: + - List ->走纸类型列表 + + 示例: + ```dart + iminPrinter.getPrinterPaperTypeList((value) { + print(value); // 打印机走纸类型列表 + }); ``` \ No newline at end of file diff --git a/example/lib/pages/v2/print_sttings_form.dart b/example/lib/pages/v2/print_sttings_form.dart index 3805d4f..02d56b8 100644 --- a/example/lib/pages/v2/print_sttings_form.dart +++ b/example/lib/pages/v2/print_sttings_form.dart @@ -107,7 +107,7 @@ class _TextSettingComponentState extends State { }); }, decoration: const InputDecoration( - hintText: '1<=spacing<=255', labelText: "Letter Spacing"), + hintText: '1<=spacing<=60', labelText: "Letter Spacing"), ), TextField( onChanged: (value) { diff --git a/lib/imin_printer.dart b/lib/imin_printer.dart index 77a415e..dc08c3e 100644 --- a/lib/imin_printer.dart +++ b/lib/imin_printer.dart @@ -699,4 +699,8 @@ class IminPrinter { Future?> getPrinterPaperTypeList() { return IminPrinterPlatform.instance.getPrinterPaperTypeList(); } + + Future setPrinterEncode(int encode) { + return IminPrinterPlatform.instance.setPrinterEncode(encode); + } } diff --git a/lib/imin_printer_method_channel.dart b/lib/imin_printer_method_channel.dart index 5f372a7..2fab7e5 100644 --- a/lib/imin_printer_method_channel.dart +++ b/lib/imin_printer_method_channel.dart @@ -150,6 +150,8 @@ class MethodChannelIminPrinter extends IminPrinterPlatform { } } + + @override Future printAntiWhiteText(String text, {IminTextStyle? style}) async { Map arguments = {}; @@ -825,6 +827,12 @@ class MethodChannelIminPrinter extends IminPrinterPlatform { return await methodChannel.invokeMethod('getPrinterSpeed'); } + @override + Future setPrinterEncode(int encode) async { + Map arguments = {"encode": encode}; + await methodChannel.invokeMethod('setPrinterEncode', arguments); + } + @override Future?> getPrinterPaperTypeList() async { return await methodChannel diff --git a/lib/imin_printer_platform_interface.dart b/lib/imin_printer_platform_interface.dart index f0f1514..c1875cb 100644 --- a/lib/imin_printer_platform_interface.dart +++ b/lib/imin_printer_platform_interface.dart @@ -393,5 +393,8 @@ abstract class IminPrinterPlatform extends PlatformInterface { Future?> getPrinterPaperTypeList() { throw UnimplementedError('getPrinterPaperTypeList() has not been implemented.'); } + Future setPrinterEncode(int encode) { + throw UnimplementedError('setPrinterEncode() has not been implemented.'); + } } diff --git a/test/imin_printer_test.dart b/test/imin_printer_test.dart index 6fac174..023ce37 100644 --- a/test/imin_printer_test.dart +++ b/test/imin_printer_test.dart @@ -34,6 +34,9 @@ class MockIminPrinterPlatform Future printAntiWhiteText(String text, {IminTextStyle? style}) => Future.value(); @override + Future setPrinterEncode(int encode) => + Future.value(); + @override Future printColumnsText({required List cols}) => Future.value(); @override From 206e2cf23b5f9d28356b027fb236882f9175f25b Mon Sep 17 00:00:00 2001 From: "song.chao" Date: Tue, 30 Jan 2024 18:30:21 +0800 Subject: [PATCH 12/24] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=A4=BA=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- example/android/app/build.gradle | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index fbee717..c3889c1 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -9,9 +9,9 @@ if (localPropertiesFile.exists()) { } } -def keystorePropertiesFile = rootProject.file("key.properties") -def keystoreProperties = new Properties() -keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) +// def keystorePropertiesFile = rootProject.file("key.properties") +// def keystoreProperties = new Properties() +// keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) def flutterRoot = localProperties.getProperty('flutter.sdk') if (flutterRoot == null) { From 6017c330b27a74a02fb50e300fd0d6f0af8b4e80 Mon Sep 17 00:00:00 2001 From: "song.chao" Date: Wed, 31 Jan 2024 10:22:52 +0800 Subject: [PATCH 13/24] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/v2/quickstart.md | 2 +- example/lib/main.dart | 10 ---------- 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/docs/v2/quickstart.md b/docs/v2/quickstart.md index c45e8ec..10177bb 100644 --- a/docs/v2/quickstart.md +++ b/docs/v2/quickstart.md @@ -34,7 +34,7 @@ class MyApp extends StatefulWidget { State createState() => _MyAppState(); } -class _MyAppState extends State { +class _MyAppState extends State { final iminPrinter = IminPrinter(); @override void initState() { diff --git a/example/lib/main.dart b/example/lib/main.dart index a4e26c9..10e96fa 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -29,18 +29,8 @@ class _MyAppState extends State { }); } }); - // getDeviceUseSDKVersion(); } - // /// 获取设备应该使用哪个版本SDK - // Future getDeviceUseSDKVersion() async { - // bool? v = await iminPrinter.getUseSdkVersion(); - // setState(() { - // version = v; - // }); - - // } - @override Widget build(BuildContext context) { return MaterialApp( From 12bc74ae1d6fa1e26005f678138c0b53e96be828 Mon Sep 17 00:00:00 2001 From: "song.chao" Date: Wed, 31 Jan 2024 11:26:06 +0800 Subject: [PATCH 14/24] =?UTF-8?q?=E5=8F=91=E5=B8=83=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 5 +++++ .../printer/imin_printer/IminPrinterPlugin.java | 2 +- example/android/app/build.gradle | 16 ++++++++-------- example/lib/main.dart | 2 +- pubspec.yaml | 2 +- 5 files changed, 16 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 736f5ef..5f241e7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 0.6.0 +- Added 1.0 and 2.0 printing apis +- Compatible with iMin devices that use the 1.0 print api and the 2.0 print api +- Fixed the money box opening bug + ## 0.5.6 - added openCashBox method diff --git a/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java b/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java index e5c0129..6955e3c 100644 --- a/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java +++ b/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java @@ -1152,7 +1152,7 @@ public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) { private void getUsePrinterSdkVersion(EventChannel.EventSink events) { Map result = new HashMap(); result.put("action", "printer_sdk_version"); - if (Build.MODEL.equals("W27_Pro") || Build.MODEL.equals("I23D01") || Build.MODEL.equals("I23M01") || Build.MODEL.equals("I23M02")) { + if (Build.MODEL.equals("W27_Pro") || Build.MODEL.equals("I23D01") || || Build.MODEL.equals("I23M01") || Build.MODEL.equals("I23M02")) { //初始化 2.0 的 SDK。 result.put("status", true); } else { diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index c3889c1..f08e40c 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -41,14 +41,14 @@ android { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } - signingConfigs { - release { - keyAlias keystoreProperties['keyAlias'] - keyPassword keystoreProperties['keyPassword'] - storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null - storePassword keystoreProperties['storePassword'] - } - } + // signingConfigs { + // release { + // keyAlias keystoreProperties['keyAlias'] + // keyPassword keystoreProperties['keyPassword'] + // storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null + // storePassword keystoreProperties['storePassword'] + // } + // } defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "com.imin.printer.imin_printer_example" diff --git a/example/lib/main.dart b/example/lib/main.dart index 10e96fa..b7c74f3 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -22,7 +22,7 @@ class _MyAppState extends State { void initState() { super.initState(); iminPrinter.receiveBroadcastStream.listen((event) { - debugPrint('broadcastStream: ${event['action'] }'); + debugPrint('broadcastStream: ${event['status'] }'); if(event['action'] == 'printer_sdk_version') { setState(() { version = event['status']; diff --git a/pubspec.yaml b/pubspec.yaml index 2b3e62b..da0a56a 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: imin_printer description: It is used to print text, pictures, two-dimensional code, bar code and other functions sdk in imin printer using Android system -version: 0.5.6 +version: 0.6.0 homepage: https://github.com/iminsoftware/imin_printer environment: From 065fcecd6a4ac3c8f78ff39cadbeda08025988a0 Mon Sep 17 00:00:00 2001 From: "song.chao" Date: Wed, 31 Jan 2024 12:02:52 +0800 Subject: [PATCH 15/24] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=89=93=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/imin/printer/imin_printer/IminPrinterPlugin.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java b/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java index 6955e3c..e5c0129 100644 --- a/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java +++ b/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java @@ -1152,7 +1152,7 @@ public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) { private void getUsePrinterSdkVersion(EventChannel.EventSink events) { Map result = new HashMap(); result.put("action", "printer_sdk_version"); - if (Build.MODEL.equals("W27_Pro") || Build.MODEL.equals("I23D01") || || Build.MODEL.equals("I23M01") || Build.MODEL.equals("I23M02")) { + if (Build.MODEL.equals("W27_Pro") || Build.MODEL.equals("I23D01") || Build.MODEL.equals("I23M01") || Build.MODEL.equals("I23M02")) { //初始化 2.0 的 SDK。 result.put("status", true); } else { From 4f5d84197a58eb5f8c7d8d776f6eb38db4d95a78 Mon Sep 17 00:00:00 2001 From: "song.chao" Date: Wed, 31 Jan 2024 13:47:32 +0800 Subject: [PATCH 16/24] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=89=93=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../imin_printer/IminPrinterPlugin.java | 3 ++- example/android/app/build.gradle | 26 +++++++++---------- example/lib/pages/v2/home.dart | 10 +++++-- lib/imin_printer_method_channel.dart | 7 +++-- 4 files changed, 28 insertions(+), 18 deletions(-) diff --git a/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java b/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java index e5c0129..9184c3d 100644 --- a/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java +++ b/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java @@ -946,6 +946,7 @@ public void onPrintResult(int code, String msg) throws RemoteException { case "setCodeAlignment": if (iminPrintUtils == null) { int align = call.argument("align"); + Log.d("TAG", "setCodeAlignment: " + align); PrinterHelper.getInstance().setCodeAlignment(align); } result.success(true); @@ -1028,7 +1029,7 @@ public void onPrintResult(int code, String msg) throws RemoteException { case "printTextBitmap": if (iminPrintUtils == null) { String textStr = call.argument("text"); - PrinterHelper.getInstance().printTextBitmap(textStr + "\n", null); + PrinterHelper.getInstance().printTextBitmap(textStr, null); } result.success(true); break; diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index f08e40c..825364f 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -9,9 +9,9 @@ if (localPropertiesFile.exists()) { } } -// def keystorePropertiesFile = rootProject.file("key.properties") -// def keystoreProperties = new Properties() -// keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) +def keystorePropertiesFile = rootProject.file("key.properties") +def keystoreProperties = new Properties() +keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) def flutterRoot = localProperties.getProperty('flutter.sdk') if (flutterRoot == null) { @@ -41,14 +41,14 @@ android { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } - // signingConfigs { - // release { - // keyAlias keystoreProperties['keyAlias'] - // keyPassword keystoreProperties['keyPassword'] - // storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null - // storePassword keystoreProperties['storePassword'] - // } - // } + signingConfigs { + release { + keyAlias keystoreProperties['keyAlias'] + keyPassword keystoreProperties['keyPassword'] + storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null + storePassword keystoreProperties['storePassword'] + } + } defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "com.imin.printer.imin_printer_example" @@ -65,8 +65,8 @@ android { release { // TODO: Add your own signing config for the release build. // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig signingConfigs.debug - // signingConfig signingConfigs.release + // signingConfig signingConfigs.debug + signingConfig signingConfigs.release } } } diff --git a/example/lib/pages/v2/home.dart b/example/lib/pages/v2/home.dart index 8b21107..b5750dc 100644 --- a/example/lib/pages/v2/home.dart +++ b/example/lib/pages/v2/home.dart @@ -160,6 +160,12 @@ class _NewHomeState extends State { }, child: const Text('partialCut'), ), + OutlinedButton( + onPressed: () async { + await iminPrinter.fullCut(); + }, + child: const Text('fullCut'), + ), OutlinedButton( onPressed: () async { await iminPrinter.setCodeAlignment(IminPrintAlign.center); @@ -422,8 +428,8 @@ class _NewHomeState extends State { qrCodeStyle: IminQrCodeStyle( errorCorrectionLevel: IminQrcodeCorrectionLevel.levelH, - qrSize: 4, - align: IminPrintAlign.center)); + qrSize: 5, + )); }, child: const Text('print Qrcode'), ), diff --git a/lib/imin_printer_method_channel.dart b/lib/imin_printer_method_channel.dart index 2fab7e5..4e2c667 100644 --- a/lib/imin_printer_method_channel.dart +++ b/lib/imin_printer_method_channel.dart @@ -606,7 +606,10 @@ class MethodChannelIminPrinter extends IminPrinterPlatform { @override Future setCodeAlignment(IminPrintAlign alignment) async { - await methodChannel.invokeMethod('setCodeAlignment'); + Map arguments = { + "align": alignment.index, + }; + await methodChannel.invokeMethod('setCodeAlignment',arguments); } @override @@ -729,7 +732,7 @@ class MethodChannelIminPrinter extends IminPrinterPlatform { await methodChannel.invokeMethod( 'printTextBitmapWithAli', arguments); } else { - await methodChannel.invokeMethod('printText', arguments); + await methodChannel.invokeMethod('printTextBitmap', arguments); } } From 677139dfe44434f0459957e26c919f2fed295566 Mon Sep 17 00:00:00 2001 From: Huayan Date: Wed, 13 Mar 2024 09:59:05 +0800 Subject: [PATCH 17/24] =?UTF-8?q?fixbug:Flutter->android->util->=E4=B8=80?= =?UTF-8?q?=E6=95=8F=20imin=E9=92=B1=E7=AE=B1jar=E5=8C=85=E6=95=B4?= =?UTF-8?q?=E5=90=88=EF=BC=8C=E5=8E=BB=E6=8E=89jar=E5=8C=85=E7=9B=B4?= =?UTF-8?q?=E6=8E=A5=E8=B0=83=E5=8A=A8=E6=96=B9=E6=B3=95=20=E6=96=B9?= =?UTF-8?q?=E6=A1=88=EF=BC=9ANA=20=E5=BD=B1=E5=93=8D=E8=8C=83=E5=9B=B4?= =?UTF-8?q?=EF=BC=9ANA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- android/build.gradle | 2 +- .../imin_printer/IminPrinterPlugin.java | 10 +- .../com/imin/printer/imin_printer/Utils.java | 247 ++++++++++++++++++ 3 files changed, 252 insertions(+), 7 deletions(-) diff --git a/android/build.gradle b/android/build.gradle index 745f6f2..fb316f5 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -59,7 +59,7 @@ dependencies { testImplementation 'junit:junit:4.13.2' testImplementation 'org.mockito:mockito-core:5.0.0' implementation 'io.reactivex.rxjava2:rxandroid:2.0.1' - implementation files('libs/IminLibs1.0.15.jar') +// implementation files('libs/IminLibs1.0.15.jar') implementation files('libs/IminStraElectronicSDK_V1.2.jar') implementation files('libs/iminPrinterSDK-10_V1.0.9_2306201823.jar') implementation "androidx.multidex:multidex:2.0.1" diff --git a/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java b/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java index 9184c3d..e132fc0 100644 --- a/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java +++ b/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java @@ -10,8 +10,6 @@ import androidx.annotation.NonNull; -import com.imin.library.IminSDKManager; -import com.imin.library.SystemPropManager; import com.imin.printer.INeoPrinterCallback; import com.imin.printer.PrinterHelper; import com.imin.printerlib.Callback; @@ -79,7 +77,7 @@ public void onAttachedToEngine(@NonNull FlutterPluginBinding flutterPluginBindin } else { //初始化 1.0 SDK iminPrintUtils = IminPrintUtils.getInstance(Utils.getInstance().getContext()); - String deviceModel = SystemPropManager.getModel(); + String deviceModel = Utils.getInstance().getModel(); if (deviceModel.contains("M2-203") || deviceModel.contains("M2-202") || deviceModel.contains("M2-Pro")) { connectType = IminPrintUtils.PrintConnectType.SPI; } else { @@ -89,7 +87,7 @@ public void onAttachedToEngine(@NonNull FlutterPluginBinding flutterPluginBindin } eventChannel.setStreamHandler(this); channel.setMethodCallHandler(this); - + } @SuppressLint("NewApi") @@ -603,7 +601,7 @@ public void run() { break; case "openCashBox": if (iminPrintUtils != null) { - IminSDKManager.opencashBox(); + Utils.getInstance().opencashBox(); } else { PrinterHelper.getInstance().openDrawer(); } @@ -1153,7 +1151,7 @@ public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) { private void getUsePrinterSdkVersion(EventChannel.EventSink events) { Map result = new HashMap(); result.put("action", "printer_sdk_version"); - if (Build.MODEL.equals("W27_Pro") || Build.MODEL.equals("I23D01") || Build.MODEL.equals("I23M01") || Build.MODEL.equals("I23M02")) { + if (Build.MODEL.equals("W27_Pro") || Build.MODEL.equals("I23D01") || Build.MODEL.equals("I23M01") || Build.MODEL.equals("I23M02")) { //初始化 2.0 的 SDK。 result.put("status", true); } else { diff --git a/android/src/main/java/com/imin/printer/imin_printer/Utils.java b/android/src/main/java/com/imin/printer/imin_printer/Utils.java index 578530d..0bb7718 100644 --- a/android/src/main/java/com/imin/printer/imin_printer/Utils.java +++ b/android/src/main/java/com/imin/printer/imin_printer/Utils.java @@ -1,6 +1,12 @@ package com.imin.printer.imin_printer; import android.content.Context; +import android.os.Build; +import android.text.TextUtils; +import android.util.Log; + +import java.io.OutputStream; +import java.lang.reflect.Method; /** * @Author xhy @@ -8,6 +14,7 @@ * @Date 2023/7/21 11:31 */ public class Utils { + private static String TAG = "flutter_print_Utils"; private Utils() { } @@ -26,4 +33,244 @@ public Context getContext() { public void setContext(Context context) { this.mContext = context; } + public String getPlaform(){ + return getSystemProperties("ro.board.platform"); + } + + public String getModel(){ + String model = ""; + String plaform =getPlaform(); + + if (!TextUtils.isEmpty(plaform) && plaform.startsWith("mt")){ + model= getSystemProperties("ro.neostra.imin_model"); + }else if (!TextUtils.isEmpty(plaform) && plaform.startsWith("ums512")){ + model = Build.MODEL; + } else if (!TextUtils.isEmpty(plaform) && plaform.startsWith("sp9863a")){ + model = Build.MODEL; + if(model.equals("I22M01")){ + model = "MS1-11"; + } + }else { + model = getSystemProperties("sys.neostra_oem_id"); + android.util.Log.d(TAG,"model "+model); + if (!TextUtils.isEmpty(model) && model.length() > 4) { + model = filterModel(model.substring(0, 5)); + String oemId = getSystemProperties("sys.neostra_oem_id"); + if(oemId.length() > 27 && oemId.startsWith("W26MP")){ + String num28 = String.valueOf(oemId.charAt(27)); + if("S".equalsIgnoreCase(num28)){ + model = "D3-510"; + } + } + } else { + model = getSystemProperties("ro.neostra.imin_model"); + } + if("".equals(model)){ + model = Build.MODEL; + if(model.equals("I22D01")){ + model = "DS1-11"; + } + } + + } + return model; + } + + private String filterModel(String str) { + switch (str) { + case "W21XX": + return "D1-501"; + case "W21MX": + return "D1-502"; + case "W21DX": + return "D1-503"; + case "W22XX": + return "D1p-601"; + case "W22MX": + return "D1p-602"; + case "W22DX": + return "D1p-603"; + case "W22DC": + return "D1p-604"; + case "W23XX": + return "D1w-701"; + case "W23MX": + return "D1w-702"; + case "W23DX": + return "D1w-703"; + case "W23DC": + return "D1w-704"; + case "V1GXX": + case "V1GPX": + return "D2-401"; + case "V1XXX": + case "V1PXX": + return "D2-402"; + case "V2BXX": + return "D2 Pro"; + case "1824P": + if(getSystemProperties("persist.sys.customername").equals("ZKSY-301")){ + return "ZKSY-301"; + }else if(getSystemProperties("persist.sys.customername").equals("K3")){ + return "K3"; + } + return "D3-501";//yimin + case "P24MP": + String customerName = getSystemProperties("persist.sys.customername"); + if(customerName.equals("2Dfire")){ + return "P10M"; + }else if(customerName.equalsIgnoreCase("Bestway")){ + return "V5-1824M Plus"; + }else if(customerName.equalsIgnoreCase("idiotehs")){ + return "CTA-D3M"; + }else { + return "D3-503";//yimin + } +// return "D3-503";//yimin + case "P24XP": + return "D3-502"; + case "W26XX": + case "W26PX": + return "D3-504"; + case "W26MX": + case "W26MP": + return "D3-505"; + case "W27LX": + return "D4-501"; + case "W27LD": + return "D4-502"; + case "W27XX": + case "W27PX": + return "D4-503"; + case "W27MX": + case "W27MP": + return "D4-504"; + case "W27DX": + return "D4-505"; + case "1824M": + return "1824M"; + case "1824D": + return "1824D"; + case "K21XX": + return "K1-101"; + case "D20XX": + return "R1-201"; + case "D20TX": + return "R1-202"; + case "W17BX": + return "S1-702"; + case "W17XX": + case "W17PX"://rk3566,android11 + return "S1-701"; + case "W26HX": + return "D3-504"; + case "W26HM": + return "D3-505"; + case "W26HD": + return "D3-506"; + case "W26HG": + case "W26GP": + return "K2-201"; + case "D224G": + return "R2-301";//D224GM04SXXT3PXW3E1MXV110CDXXX + case "D22XX": + return "R2-301";// error ? + case "D22TX": + return "R2-302"; + case "W27DP": + return "D4-505"; + case "K21PX": + return "K1-101"; + case "W23PX": + return "D1w-701"; + case "W23MP": + return "D1w-702"; + case "W23DP": + return "D1w-703"; + case "W28XX": + case "W28MX": + customerName = getSystemProperties("persist.sys.customername"); + if(customerName.equals("2Dfire")) { + return "P5"; + }else if("Dingjian".equals(customerName)){ + return "DJ-P28"; + }else if("baohuoli".equalsIgnoreCase(customerName)){ + return "FS-5216"; + }else { + return "Swan 1";//yimin device name + } +// return "Swan 1";//yimin device name + case "W28GX": + String w28gxCustomerName = getSystemProperties("persist.sys.customername"); + if(w28gxCustomerName.equals("2Dfire")){ + return "P5K"; + }else if("Dingjian".equals(w28gxCustomerName)){ + return "DJ-P28K"; + }else if("baohuoli".equalsIgnoreCase(w28gxCustomerName)){ + return "FS-5216"; + }else { + return "Swan 1k";//yimin device name + } + case "W26DP": + return "D3-506"; + case "26PXX": + return "P10CS";//yimin device name + case "26MPX": + return "P10DS";//yimin device name +// return "Swan 1k";//yimin device name + default: + break; + } + return ""; + } + + public String getSystemProperties(String property) { + String value =""; + try { + Class clazz = Class.forName("android.os.SystemProperties"); + Method getter = clazz.getDeclaredMethod("get", String.class); + value = (String) getter.invoke(null, property); + } catch (Exception e) { + Log.d(TAG, "Unable to read system properties"); + } + return value; + } + public void opencashBox(){ + int open = 1; + OutputStream out = null; + String cmd = "echo "+open+" > /sys/class/neostra_gpioctl/dev/gpioctl " + "\n"; + String model = getModel(); + if(model.equals("D1") || (model.equals("D1-Pro")) + || (model.equals("Falcon 1"))|| (model.equals("I22T01")) + || getPlaform().equalsIgnoreCase("ums512")){ + cmd = "echo "+open+" > /sys/extcon-usb-gpio/cashbox_en " + "\n"; + }/*else if(model.equals("Swan 1") || model.equals("DS1-11")){ + cmd = "echo cash_en:0 > /sys/devices/platform/gpio_ctrl/switch_gpio " + "\n"; + }*/ + try { + Process exeEcho = Runtime.getRuntime().exec("sh"); + out = exeEcho.getOutputStream(); + out.write(cmd.getBytes()); + out.flush(); + Log.d("iminLib", " " + cmd); + /*if(model.equals("Swan 1") || model.equals("DS1-11")){ + Thread.sleep(500); + String cmd2 = "echo cash_en:1 > /sys/devices/platform/gpio_ctrl/switch_gpio " + "\n"; + out.write(cmd2.getBytes()); + out.flush(); + }*/ + } catch (Exception e) { + //e.printStackTrace(); + Log.d("iminLib", "cmdGpioPwrOn faild :" + e.getMessage()); + }finally { + if(out != null){ + try { + out.close(); + }catch (Exception e){ + //e.printStackTrace(); + Log.d("iminLib", "close stream faild :" + e.getMessage()); + } + } + } + } } From 13e7fed2ff6b84fafa30f35d085517e53be596f7 Mon Sep 17 00:00:00 2001 From: "song.chao" Date: Wed, 13 Mar 2024 10:02:27 +0800 Subject: [PATCH 18/24] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=8A=E4=B8=8B?= =?UTF-8?q?=E6=96=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 5 +- android/build.gradle | 3 +- android/gradle.properties | 2 + android/src/main/AndroidManifest.xml | 8 +- .../printer/imin_printer/BaseApplication.java | 23 ---- .../imin/printer/imin_printer/BytesUtils.java | 121 ------------------ .../imin_printer/IminPrinterPlugin.java | 51 ++++---- .../imin/printer/imin_printer/MyProvider.java | 53 -------- .../com/imin/printer/imin_printer/Utils.java | 29 ----- docs/zh-cn/api.md | 4 +- .../android/app/src/main/AndroidManifest.xml | 5 +- example/lib/main.dart | 21 ++- example/lib/pages/v1/home.dart | 40 ++++-- example/lib/pages/v2/home.dart | 10 ++ example/lib/pages/v2/print_sttings_form.dart | 1 + example/lib/pages/v2/transaction_print.dart | 62 +++++++-- lib/imin_printer.dart | 3 + lib/imin_printer_method_channel.dart | 14 +- lib/imin_printer_platform_interface.dart | 16 ++- pubspec.yaml | 2 +- test/imin_printer_test.dart | 2 + 21 files changed, 161 insertions(+), 314 deletions(-) delete mode 100644 android/src/main/java/com/imin/printer/imin_printer/BaseApplication.java delete mode 100644 android/src/main/java/com/imin/printer/imin_printer/BytesUtils.java delete mode 100644 android/src/main/java/com/imin/printer/imin_printer/MyProvider.java delete mode 100644 android/src/main/java/com/imin/printer/imin_printer/Utils.java diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f241e7..30f0e6e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,12 @@ # Changelog +# 0.6.1 + - Fixed bug + ## 0.6.0 - Added 1.0 and 2.0 printing apis - Compatible with iMin devices that use the 1.0 print api and the 2.0 print api -- Fixed the money box opening bug +- Fixed the money box opening bugqq ## 0.5.6 - added openCashBox method diff --git a/android/build.gradle b/android/build.gradle index 745f6f2..e7a0ea0 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -39,7 +39,8 @@ android { } defaultConfig { - minSdkVersion 16 + minSdkVersion 21 + multiDexEnabled true } dependencies { testImplementation 'junit:junit:4.13.2' diff --git a/android/gradle.properties b/android/gradle.properties index 3e927b1..5943977 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -15,6 +15,8 @@ org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 # Android operating system, and which are packaged with your app's APK # https://developer.android.com/topic/libraries/support-library/androidx-rn android.useAndroidX=true + +android.enableJetifier=true # Enables namespacing of each library's R class so that its R class includes only the # resources declared in the library itself and none from the library's dependencies, # thereby reducing the size of the R class for that library diff --git a/android/src/main/AndroidManifest.xml b/android/src/main/AndroidManifest.xml index 3275d7b..768e1a0 100644 --- a/android/src/main/AndroidManifest.xml +++ b/android/src/main/AndroidManifest.xml @@ -1,7 +1,7 @@ - +package="com.imin.printer.imin_printer"> + + diff --git a/android/src/main/java/com/imin/printer/imin_printer/BaseApplication.java b/android/src/main/java/com/imin/printer/imin_printer/BaseApplication.java deleted file mode 100644 index 25152c6..0000000 --- a/android/src/main/java/com/imin/printer/imin_printer/BaseApplication.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.imin.printer.imin_printer; - -import android.app.Application; -import android.content.Context; - -import androidx.multidex.MultiDex; - -/** - * @Author xhy - * @Feature description : - * @Date 2023/8/2 15:28 - */ -public class BaseApplication extends Application { - @Override - public void onCreate() { - super.onCreate(); - } - @Override - protected void attachBaseContext(Context base) { - super.attachBaseContext(base); - MultiDex.install(this); - } -} diff --git a/android/src/main/java/com/imin/printer/imin_printer/BytesUtils.java b/android/src/main/java/com/imin/printer/imin_printer/BytesUtils.java deleted file mode 100644 index ee0cdd1..0000000 --- a/android/src/main/java/com/imin/printer/imin_printer/BytesUtils.java +++ /dev/null @@ -1,121 +0,0 @@ -package com.imin.printer.imin_printer; - -public class BytesUtils { - - public static final byte GS = 0x1D;// Group separator - - public static byte[] printBitmap(byte[] bytes){ - byte[] bytes1 = new byte[4]; - bytes1[0] = GS; - bytes1[1] = 0x76; - bytes1[2] = 0x30; - bytes1[3] = 0x00; - - return combineArrays(bytes1, bytes, cutAndLine()); - } - - public static byte[] cutAndLine() { - byte[] command = {0x1d, 0x56, 0x42, 0x01}; - - return command; - } - - public static byte[] combineArrays(byte[]... a) { - int massLength = 0; - for (byte[] b : a) { - massLength += b.length; - } - byte[] c = new byte[massLength]; - byte[] d; - int index = 0; - for (byte[] anA : a) { - d = anA; - System.arraycopy(d, 0, c, index, d.length); - index += d.length; - } - return c; - } - - - public static byte[] byteMerger(byte[] byte_1, byte[] byte_2) { - byte[] byte_3 = new byte[byte_1.length + byte_2.length]; - System.arraycopy(byte_1, 0, byte_3, 0, byte_1.length); - System.arraycopy(byte_2, 0, byte_3, byte_1.length, byte_2.length); - return byte_3; - } - /** - * 生成间断性黑块数据 - * @param w : 打印纸宽度, 单位点 - * @return - */ - public static byte[] initBlackBlock(int w){ - int ww = (w + 7)/8 ; - int n = (ww + 11)/12; - int hh = n * 24; - byte[] data = new byte[ hh * ww + 5]; - - data[0] = (byte)ww;//xL - data[1] = (byte)(ww >> 8);//xH - data[2] = (byte)hh; - data[3] = (byte)(hh >> 8); - - int k = 4; - for(int i=0; i < n; i++){ - for(int j=0; j<24; j++){ - for(int m =0; m> 8);//xH - data[2] = (byte)hh; - data[3] = (byte)(hh >> 8); - - int k = 4; - for(int i=0; i modelList = Arrays.asList(modelArry); + if (modelList.contains(Build.MODEL)) { //初始化 2.0 的 SDK。 - PrinterHelper.getInstance().initPrinterService(Utils.getInstance().getContext()); + PrinterHelper.getInstance().initPrinterService(_context); + sdkVersion = "2.0.0"; } else { //初始化 1.0 SDK - iminPrintUtils = IminPrintUtils.getInstance(Utils.getInstance().getContext()); + iminPrintUtils = IminPrintUtils.getInstance(_context); String deviceModel = SystemPropManager.getModel(); if (deviceModel.contains("M2-203") || deviceModel.contains("M2-202") || deviceModel.contains("M2-Pro")) { connectType = IminPrintUtils.PrintConnectType.SPI; @@ -86,6 +89,7 @@ public void onAttachedToEngine(@NonNull FlutterPluginBinding flutterPluginBindin connectType = IminPrintUtils.PrintConnectType.USB; } iminPrintUtils.resetDevice(); + sdkVersion = "1.0.0"; } eventChannel.setStreamHandler(this); channel.setMethodCallHandler(this); @@ -96,12 +100,16 @@ public void onAttachedToEngine(@NonNull FlutterPluginBinding flutterPluginBindin @Override public void onMethodCall(@NonNull MethodCall call, @NonNull Result result) { switch (call.method) { + case "getSdkVersion": + result.success(sdkVersion); + break; case "initPrinter": if (iminPrintUtils != null) { iminPrintUtils.initPrinter(connectType); result.success(true); } else { - PrinterHelper.getInstance().initPrinter(Utils.getInstance().getContext().getPackageName(), null); + Log.d(TAG, _context.getPackageName()); + PrinterHelper.getInstance().initPrinter(_context.getPackageName(), null); } break; case "getPrinterStatus": @@ -223,17 +231,19 @@ public void callback(int status) { Log.e("IminPrinter", err.getMessage()); } break; - case "printText":// + case "printText": String text = call.argument("text"); if (iminPrintUtils != null) { - iminPrintUtils.printText(text); + iminPrintUtils.printText(text + "\n"); + } else { + PrinterHelper.getInstance().printText(text + "\n", null); } result.success(true); break; case "printAntiWhiteText": String whiteText = call.argument("text"); if (iminPrintUtils != null) { - iminPrintUtils.printAntiWhiteText(whiteText); + iminPrintUtils.printAntiWhiteText(whiteText + "\n"); } result.success(true); break; @@ -630,7 +640,7 @@ public void run() { break; case "unBindService": if (iminPrintUtils == null) { - PrinterHelper.getInstance().deInitPrinterService(Utils.getInstance().getContext()); + PrinterHelper.getInstance().deInitPrinterService(_context); } result.success(true); break; @@ -1029,7 +1039,7 @@ public void onPrintResult(int code, String msg) throws RemoteException { case "printTextBitmap": if (iminPrintUtils == null) { String textStr = call.argument("text"); - PrinterHelper.getInstance().printTextBitmap(textStr, null); + PrinterHelper.getInstance().printTextBitmap(textStr + "\n", null); } result.success(true); break; @@ -1037,10 +1047,7 @@ public void onPrintResult(int code, String msg) throws RemoteException { if (iminPrintUtils == null) { String textBitmapString = call.argument("text"); int textBitmapAlign = call.argument("align"); - Log.d("sdsd", "打印文字对齐方式textBitmapString" + textBitmapString); - Log.d("sdsd", "打印文字对齐方式textBitmapAlign" + textBitmapAlign); - - PrinterHelper.getInstance().printTextBitmapWithAli(textBitmapString, textBitmapAlign, null); + PrinterHelper.getInstance().printTextBitmapWithAli(textBitmapString + "\n", textBitmapAlign, null); } result.success(true); break; @@ -1150,24 +1157,10 @@ public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) { channel.setMethodCallHandler(null); } - private void getUsePrinterSdkVersion(EventChannel.EventSink events) { - Map result = new HashMap(); - result.put("action", "printer_sdk_version"); - if (Build.MODEL.equals("W27_Pro") || Build.MODEL.equals("I23D01") || Build.MODEL.equals("I23M01") || Build.MODEL.equals("I23M02")) { - //初始化 2.0 的 SDK。 - result.put("status", true); - } else { - //初始化 1.0 SDK - result.put("status", false); - } - events.success(result); - } - @Override public void onListen(Object argument, EventChannel.EventSink events) { eventSink = events; chargingStateChangeReceiver = createChargingStateChangeReceiver(eventSink); - getUsePrinterSdkVersion(eventSink); IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(ACTION_PRITER_STATUS_CHANGE); intentFilter.addAction(ACTION_POGOPIN_STATUS_CHANGE); diff --git a/android/src/main/java/com/imin/printer/imin_printer/MyProvider.java b/android/src/main/java/com/imin/printer/imin_printer/MyProvider.java deleted file mode 100644 index b9ef8ad..0000000 --- a/android/src/main/java/com/imin/printer/imin_printer/MyProvider.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.imin.printer.imin_printer; - -import android.content.ContentProvider; -import android.content.ContentValues; -import android.content.Context; -import android.database.Cursor; -import android.net.Uri; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * @Author xhy - * @Feature description : - * @Date 2023/7/21 11:12 - */ -public class MyProvider extends ContentProvider { - Context mContext; - @Override - public boolean onCreate() { - mContext = getContext(); - Utils.getInstance().setContext(mContext); - return true; - } - - @Nullable - @Override - public Cursor query(@NonNull Uri uri, @Nullable String[] projection, @Nullable String selection, @Nullable String[] selectionArgs, @Nullable String sortOrder) { - return null; - } - - @Nullable - @Override - public String getType(@NonNull Uri uri) { - return null; - } - - @Nullable - @Override - public Uri insert(@NonNull Uri uri, @Nullable ContentValues values) { - return null; - } - - @Override - public int delete(@NonNull Uri uri, @Nullable String selection, @Nullable String[] selectionArgs) { - return 0; - } - - @Override - public int update(@NonNull Uri uri, @Nullable ContentValues values, @Nullable String selection, @Nullable String[] selectionArgs) { - return 0; - } -} diff --git a/android/src/main/java/com/imin/printer/imin_printer/Utils.java b/android/src/main/java/com/imin/printer/imin_printer/Utils.java deleted file mode 100644 index 578530d..0000000 --- a/android/src/main/java/com/imin/printer/imin_printer/Utils.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.imin.printer.imin_printer; - -import android.content.Context; - -/** - * @Author xhy - * @Feature description : - * @Date 2023/7/21 11:31 - */ -public class Utils { - private Utils() { - } - - public static Utils getInstance() { - return Holder.instance; - } - - private static class Holder { - private static final Utils instance = new Utils(); - } - - private Context mContext; - public Context getContext() { - return mContext; - } - public void setContext(Context context) { - this.mContext = context; - } -} diff --git a/docs/zh-cn/api.md b/docs/zh-cn/api.md index c6bf127..ae79eff 100644 --- a/docs/zh-cn/api.md +++ b/docs/zh-cn/api.md @@ -126,9 +126,9 @@ import 'package:imin_printer/enums.dart'; ///需要导入 ``` ## 设置文字行间距 - - setTextLineSpacing() + - setTextLineSpacing() - 参数: - - double space -> 行间距 + - double space -> 行间距 示例: ```dart diff --git a/example/android/app/src/main/AndroidManifest.xml b/example/android/app/src/main/AndroidManifest.xml index 53dbc4f..0269134 100644 --- a/example/android/app/src/main/AndroidManifest.xml +++ b/example/android/app/src/main/AndroidManifest.xml @@ -1,10 +1,9 @@ - + + > { final iminPrinter = IminPrinter(); - bool? version = false; + String version = '1.0.0'; @override void initState() { super.initState(); - iminPrinter.receiveBroadcastStream.listen((event) { - debugPrint('broadcastStream: ${event['status'] }'); - if(event['action'] == 'printer_sdk_version') { - setState(() { - version = event['status']; - }); - } - }); + getSdkVersion(); + } + Future getSdkVersion() async { + final sdkVersion = await iminPrinter.getSdkVersion(); + if (!mounted) return; + setState( () { + version = sdkVersion!; + }); } - @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter Demo', debugShowCheckedModeBanner: false, - home: version == true ? const NewHome() : const Home() , + home: version == '2.0.0' ? const NewHome() : const Home() , ); } } diff --git a/example/lib/pages/v1/home.dart b/example/lib/pages/v1/home.dart index c0fa265..c7c0f39 100644 --- a/example/lib/pages/v1/home.dart +++ b/example/lib/pages/v1/home.dart @@ -1,6 +1,5 @@ import 'package:flutter/material.dart'; import 'dart:async'; -import 'package:flutter/services.dart'; import 'package:imin_printer/imin_printer.dart'; import 'package:imin_printer/enums.dart'; import 'package:imin_printer/imin_style.dart'; @@ -65,7 +64,8 @@ class _HomeState extends State { }), ElevatedButton( onPressed: () async { - Map? state = await iminPrinter.getPrinterStatus(); + Map? state = + await iminPrinter.getPrinterStatus(); Fluttertoast.showToast( msg: state['msg'], toastLength: Toast.LENGTH_LONG, @@ -88,6 +88,7 @@ class _HomeState extends State { await iminPrinter.printText( 'iMin advocates the core values of "Integrity, Customer First, Invention&Creation, Patience”, using cloud-based technology to help businesses to get access to the Internet and also increases their data base, by providing more solutions so that their business can take a step further. Through their efficiency enhancement, cost improvement, service innovation, and better services for consumers, these aspect will drives the entire industry development.', style: IminTextStyle(wordWrap: true)); + await iminPrinter.printAndFeedPaper(100); }, child: const Text('Text in word wrap')), ElevatedButton( @@ -147,9 +148,13 @@ class _HomeState extends State { child: const Text('Text style')), ElevatedButton( onPressed: () async { - Uint8List byte = - await _getImageFromAsset('assets/images/logo.jpg'); - await iminPrinter.printSingleBitmap(byte); + await iminPrinter.printSingleBitmap( + 'https://oss-sg.imin.sg/web/iMinPartner2/images/logo.png', + pictureStyle: IminPictureStyle( + width: 250, + height: 50, + ) + ); }, child: const Text('print singleBitmap')) ], @@ -182,6 +187,7 @@ class _HomeState extends State { onPressed: () async { await iminPrinter.printText( '测试打印字体iMin is a service provider who focuses mainly on the field of business intelligence, bringing IoT, AI and cloud service to the business sector. We develop and provide a wide range of intelligent commercial hardware solutions which help businesses to run more cost effectively.'); + await iminPrinter.printAndFeedPaper(100); }, child: const Text('print Text')), ElevatedButton( @@ -294,6 +300,7 @@ class _HomeState extends State { onPressed: () async { await iminPrinter.printAntiWhiteText( 'iMin is a service provider who focuses mainly on the field of business intelligence, bringing IoT, AI and cloud service to the business sector. We develop and provide a wide range of intelligent commercial hardware solutions which help businesses to run more cost effectively.'); + await iminPrinter.printAndFeedPaper(100); }, child: const Text('print antiWhiteText')), ElevatedButton( @@ -320,6 +327,11 @@ class _HomeState extends State { await iminPrinter.partialCut(); }, child: const Text('partialCut')), + ElevatedButton( + onPressed: () async { + await iminPrinter.openCashBox(); + }, + child: const Text('opencashBox')) ]), ), ], @@ -329,13 +341,13 @@ class _HomeState extends State { } } -Future readFileBytes(String path) async { - ByteData fileData = await rootBundle.load(path); - Uint8List fileUnit8List = fileData.buffer - .asUint8List(fileData.offsetInBytes, fileData.lengthInBytes); - return fileUnit8List; -} +// Future readFileBytes(String path) async { +// ByteData fileData = await rootBundle.load(path); +// Uint8List fileUnit8List = fileData.buffer +// .asUint8List(fileData.offsetInBytes, fileData.lengthInBytes); +// return fileUnit8List; +// } -Future _getImageFromAsset(String iconPath) async { - return await readFileBytes(iconPath); -} +// Future _getImageFromAsset(String iconPath) async { +// return await readFileBytes(iconPath); +// } diff --git a/example/lib/pages/v2/home.dart b/example/lib/pages/v2/home.dart index b5750dc..524b5b2 100644 --- a/example/lib/pages/v2/home.dart +++ b/example/lib/pages/v2/home.dart @@ -139,6 +139,7 @@ class _NewHomeState extends State { debugPrint('escPos: $escPos'); await iminPrinter.sendRAWData(Uint8List.fromList(escPos)); + await iminPrinter.printAndFeedPaper(70); }, child: const Text('sendRAWData'), ), @@ -157,12 +158,14 @@ class _NewHomeState extends State { OutlinedButton( onPressed: () async { await iminPrinter.partialCut(); + await iminPrinter.printAndFeedPaper(70); }, child: const Text('partialCut'), ), OutlinedButton( onPressed: () async { await iminPrinter.fullCut(); + await iminPrinter.printAndFeedPaper(70); }, child: const Text('fullCut'), ), @@ -201,6 +204,7 @@ class _NewHomeState extends State { width: 150, height: 50, )); + await iminPrinter.printAndFeedPaper(70); }, child: const Text('print singleBitmap'), ), @@ -223,6 +227,7 @@ class _NewHomeState extends State { width: 250, height: 30, )); + await iminPrinter.printAndFeedPaper(70); }, child: const Text('print multiBitmap'), ), @@ -244,6 +249,7 @@ class _NewHomeState extends State { width: 150, height: 50, )); + await iminPrinter.printAndFeedPaper(70); }, child: const Text('print bitmapColorChart'), ), @@ -392,6 +398,7 @@ class _NewHomeState extends State { fontSize: 26, align: IminPrintAlign.left), ]); + await iminPrinter.printAndFeedPaper(70); }, child: const Text('print ColumnsText'), ), @@ -419,6 +426,7 @@ class _NewHomeState extends State { fontSize: 26, align: IminPrintAlign.left), ]); + await iminPrinter.printAndFeedPaper(70); }, child: const Text('print ColumnsString'), ), @@ -430,6 +438,7 @@ class _NewHomeState extends State { IminQrcodeCorrectionLevel.levelH, qrSize: 5, )); + await iminPrinter.printAndFeedPaper(70); }, child: const Text('print Qrcode'), ), @@ -443,6 +452,7 @@ class _NewHomeState extends State { text: 'www.google.com', ), doubleQRSize: 5); + await iminPrinter.printAndFeedPaper(70); }, child: const Text('print DoubleQR'), ), diff --git a/example/lib/pages/v2/print_sttings_form.dart b/example/lib/pages/v2/print_sttings_form.dart index 02d56b8..8ac3716 100644 --- a/example/lib/pages/v2/print_sttings_form.dart +++ b/example/lib/pages/v2/print_sttings_form.dart @@ -304,6 +304,7 @@ class _TextSettingComponentState extends State { underline: underline, throughline: throughline, reverseWhite: reverseWhite)); + iminPrinter.printAndLineFeed(); }), ) ]); diff --git a/example/lib/pages/v2/transaction_print.dart b/example/lib/pages/v2/transaction_print.dart index ae9783e..c8bb776 100644 --- a/example/lib/pages/v2/transaction_print.dart +++ b/example/lib/pages/v2/transaction_print.dart @@ -14,6 +14,10 @@ class _TransactionPrintPageState extends State { bool firstTicket = false; bool secondTicket = false; bool thirdlyTicket = false; + bool isOpenTransaction = false; + List? thirdlyTicketData; + List? secondTicketData; + List? firstTicketData; @override void initState() { super.initState(); @@ -47,10 +51,16 @@ class _TransactionPrintPageState extends State { setState(() { firstTicket = value!; }); - final List firstTicketData = + if (firstTicket) { + firstTicketData = await getBaiduTestBytes(); - await iminPrinter - .sendRAWData(Uint8List.fromList(firstTicketData)); + if (!isOpenTransaction) { + await iminPrinter.sendRAWData( + Uint8List.fromList(firstTicketData!)); + } + } else { + firstTicketData = null; + } }), const Text('ticket 1') ], @@ -67,10 +77,15 @@ class _TransactionPrintPageState extends State { setState(() { secondTicket = value!; }); - final List secondTicketData = - await getMeituanBill(); - await iminPrinter.sendRAWData( - Uint8List.fromList(secondTicketData)); + if (secondTicket) { + secondTicketData = await getMeituanBill(); + if (!isOpenTransaction) { + await iminPrinter.sendRAWData( + Uint8List.fromList(secondTicketData!)); + } + } else { + secondTicketData = null; + } }), const Text('ticket 2') ], @@ -87,10 +102,15 @@ class _TransactionPrintPageState extends State { setState(() { thirdlyTicket = value!; }); - final List thirdlyTicketData = - await getErlmoData(); - await iminPrinter.sendRAWData( - Uint8List.fromList(thirdlyTicketData)); + if (thirdlyTicket) { + thirdlyTicketData = await getErlmoData(); + if (!isOpenTransaction) { + await iminPrinter.sendRAWData( + Uint8List.fromList(thirdlyTicketData!)); + } + } else { + thirdlyTicketData = null; + } }), const Text('ticket 3') ], @@ -100,13 +120,29 @@ class _TransactionPrintPageState extends State { ), ElevatedButton( onPressed: () { + setState(() { + isOpenTransaction = true; + }); iminPrinter.enterPrinterBuffer(true); }, child: const Text('start transaction Print'), ), ElevatedButton( - onPressed: () { - iminPrinter.commitPrinterBuffer(); + onPressed: () async { + debugPrint('commit transaction'); + if (thirdlyTicketData != null) { + await iminPrinter + .sendRAWData(Uint8List.fromList(thirdlyTicketData!)); + } + if (secondTicketData != null) { + await iminPrinter + .sendRAWData(Uint8List.fromList(secondTicketData!)); + } + if (firstTicketData != null) { + await iminPrinter + .sendRAWData(Uint8List.fromList(firstTicketData!)); + } + await iminPrinter.commitPrinterBuffer(); }, child: const Text('commit transaction'), ), diff --git a/lib/imin_printer.dart b/lib/imin_printer.dart index dc08c3e..27c3b23 100644 --- a/lib/imin_printer.dart +++ b/lib/imin_printer.dart @@ -8,6 +8,9 @@ import 'package:logger/logger.dart'; var logger = Logger(); class IminPrinter { + Future getSdkVersion() { + return IminPrinterPlatform.instance.getSdkVersion(); + } Stream get receiveBroadcastStream { return IminPrinterPlatform.instance.initEventChannel(); } diff --git a/lib/imin_printer_method_channel.dart b/lib/imin_printer_method_channel.dart index 4e2c667..b3893b8 100644 --- a/lib/imin_printer_method_channel.dart +++ b/lib/imin_printer_method_channel.dart @@ -18,6 +18,11 @@ class MethodChannelIminPrinter extends IminPrinterPlatform { final eventChannel = const EventChannel('imin_printer_event'); + @override + Future getSdkVersion() async { + return await methodChannel.invokeMethod('getSdkVersion'); + } + @override Stream initEventChannel() { return eventChannel.receiveBroadcastStream(); @@ -150,8 +155,6 @@ class MethodChannelIminPrinter extends IminPrinterPlatform { } } - - @override Future printAntiWhiteText(String text, {IminTextStyle? style}) async { Map arguments = {}; @@ -303,7 +306,6 @@ class MethodChannelIminPrinter extends IminPrinterPlatform { if (qrCodeStyle != null) { if (qrCodeStyle.align != null && qrCodeStyle.qrSize != null && - qrCodeStyle.leftMargin != null && qrCodeStyle.errorCorrectionLevel != null) { arguments.putIfAbsent("alignment", () => qrCodeStyle.align?.index); arguments.putIfAbsent("qrSize", () => qrCodeStyle.qrSize!); @@ -606,10 +608,10 @@ class MethodChannelIminPrinter extends IminPrinterPlatform { @override Future setCodeAlignment(IminPrintAlign alignment) async { - Map arguments = { + Map arguments = { "align": alignment.index, }; - await methodChannel.invokeMethod('setCodeAlignment',arguments); + await methodChannel.invokeMethod('setCodeAlignment', arguments); } @override @@ -833,7 +835,7 @@ class MethodChannelIminPrinter extends IminPrinterPlatform { @override Future setPrinterEncode(int encode) async { Map arguments = {"encode": encode}; - await methodChannel.invokeMethod('setPrinterEncode', arguments); + await methodChannel.invokeMethod('setPrinterEncode', arguments); } @override diff --git a/lib/imin_printer_platform_interface.dart b/lib/imin_printer_platform_interface.dart index c1875cb..224e01a 100644 --- a/lib/imin_printer_platform_interface.dart +++ b/lib/imin_printer_platform_interface.dart @@ -32,6 +32,10 @@ abstract class IminPrinterPlatform extends PlatformInterface { throw UnimplementedError('initEventChannel() has not been implemented.'); } + Future getSdkVersion() { + throw UnimplementedError('getSdkVersion() has not been implemented.'); + } + Future initPrinter() { throw UnimplementedError('initPrinter() has not been implemented.'); } @@ -379,22 +383,28 @@ abstract class IminPrinterPlatform extends PlatformInterface { } Future?> getPrinterDensityList() { - throw UnimplementedError('getPrinterDensityList() has not been implemented.'); + throw UnimplementedError( + 'getPrinterDensityList() has not been implemented.'); } + Future?> getPrinterSpeedList() { throw UnimplementedError('getPrinterSpeedList() has not been implemented.'); } + Future setPrinterSpeed(int speed) { throw UnimplementedError('setPrinterSpeed() has not been implemented.'); } + Future getPrinterSpeed() { throw UnimplementedError('getPrinterSpeed() has not been implemented.'); } + Future?> getPrinterPaperTypeList() { - throw UnimplementedError('getPrinterPaperTypeList() has not been implemented.'); + throw UnimplementedError( + 'getPrinterPaperTypeList() has not been implemented.'); } + Future setPrinterEncode(int encode) { throw UnimplementedError('setPrinterEncode() has not been implemented.'); } - } diff --git a/pubspec.yaml b/pubspec.yaml index da0a56a..52b6573 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: imin_printer description: It is used to print text, pictures, two-dimensional code, bar code and other functions sdk in imin printer using Android system -version: 0.6.0 +version: 0.6.1 homepage: https://github.com/iminsoftware/imin_printer environment: diff --git a/test/imin_printer_test.dart b/test/imin_printer_test.dart index 023ce37..c38b83b 100644 --- a/test/imin_printer_test.dart +++ b/test/imin_printer_test.dart @@ -13,6 +13,8 @@ class MockIminPrinterPlatform with MockPlatformInterfaceMixin implements IminPrinterPlatform { + @override + Future getSdkVersion() => Future.value('1.0.0'); @override Stream initEventChannel() => const Stream.empty(); @override From b462e74729706d9c7a2ac122df7f1c4eac8239cf Mon Sep 17 00:00:00 2001 From: "song.chao" Date: Wed, 13 Mar 2024 10:42:12 +0800 Subject: [PATCH 19/24] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=89=93=E5=8D=B0?= =?UTF-8?q?=E7=A4=BA=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- android/src/main/AndroidManifest.xml | 12 ------------ example/lib/pages/v1/home.dart | 19 +++++++++++++++---- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/android/src/main/AndroidManifest.xml b/android/src/main/AndroidManifest.xml index 768e1a0..9ba2e9d 100644 --- a/android/src/main/AndroidManifest.xml +++ b/android/src/main/AndroidManifest.xml @@ -1,15 +1,3 @@ - - diff --git a/example/lib/pages/v1/home.dart b/example/lib/pages/v1/home.dart index c7c0f39..f4e4d7d 100644 --- a/example/lib/pages/v1/home.dart +++ b/example/lib/pages/v1/home.dart @@ -96,6 +96,7 @@ class _HomeState extends State { await iminPrinter.printText('居中', style: IminTextStyle(align: IminPrintAlign.center)); + await iminPrinter.printAndFeedPaper(100); }, child: const Text('text alignment')) ]), @@ -110,6 +111,7 @@ class _HomeState extends State { onPressed: () async { await iminPrinter.printText('测试字体大小', style: IminTextStyle(fontSize: 25)); + await iminPrinter.printAndFeedPaper(100); }, child: const Text('Text fontSize')), ElevatedButton( @@ -117,6 +119,7 @@ class _HomeState extends State { await iminPrinter.printText('测试打印字体', style: IminTextStyle( typeface: IminTypeface.typefaceMonospace)); + await iminPrinter.printAndFeedPaper(100); }, child: const Text('Text typeface')) ], @@ -144,6 +147,7 @@ class _HomeState extends State { fontSize: 25, // typeface: IminTypeface.typefaceDefault fontStyle: IminFontStyle.italic)); + await iminPrinter.printAndFeedPaper(100); }, child: const Text('Text style')), ElevatedButton( @@ -155,6 +159,7 @@ class _HomeState extends State { height: 50, ) ); + await iminPrinter.printAndFeedPaper(100); }, child: const Text('print singleBitmap')) ], @@ -206,8 +211,9 @@ class _HomeState extends State { pictureStyle: IminPictureStyle( alignment: IminPrintAlign.center, width: 250, - height: 50, + height: 70, )); + await iminPrinter.printAndFeedPaper(200); }, child: const Text('print singleBitmap in align')) ], @@ -226,27 +232,29 @@ class _HomeState extends State { IminQrcodeCorrectionLevel.levelH, qrSize: 4, align: IminPrintAlign.left)); + await iminPrinter.printAndFeedPaper(100); }, child: const Text('print QrCode')), ElevatedButton( onPressed: () async { await iminPrinter.printColumnsText(cols: [ ColumnMaker( - text: '1', + text: '张三', width: 1, fontSize: 26, align: IminPrintAlign.center), ColumnMaker( - text: 'iMin', + text: '50', width: 2, fontSize: 26, align: IminPrintAlign.left), ColumnMaker( - text: 'iMin', + text: 'A+', width: 1, fontSize: 26, align: IminPrintAlign.right) ]); + await iminPrinter.printAndFeedPaper(100); }, child: const Text('print ColumnsText')) ], @@ -265,6 +273,7 @@ class _HomeState extends State { style: IminBarCodeStyle( align: IminPrintAlign.center, position: IminBarcodeTextPos.textAbove)); + await iminPrinter.printAndFeedPaper(100); }, child: const Text('print barCode')), ElevatedButton( @@ -286,6 +295,7 @@ class _HomeState extends State { width: 250, height: 30, )); + await iminPrinter.printAndFeedPaper(100); }, child: const Text('print multiBitmap')) ], @@ -313,6 +323,7 @@ class _HomeState extends State { text: 'www.google.com', ), doubleQRSize: 5); + await iminPrinter.printAndFeedPaper(100); }, child: const Text('print DoubleQR')) ]), From f6994345f3190f05b61b35bbf658f62bec08ea6e Mon Sep 17 00:00:00 2001 From: Huayan Date: Wed, 13 Mar 2024 10:51:07 +0800 Subject: [PATCH 20/24] =?UTF-8?q?fixbug:Flutter->android->util->=E4=B8=80?= =?UTF-8?q?=E6=95=8F=20imin=E9=92=B1=E7=AE=B1jar=E5=8C=85=E6=95=B4?= =?UTF-8?q?=E5=90=88=EF=BC=8C=E5=8E=BB=E6=8E=89jar=E5=8C=85=E7=9B=B4?= =?UTF-8?q?=E6=8E=A5=E8=B0=83=E5=8A=A8=E6=96=B9=E6=B3=95=20=E6=96=B9?= =?UTF-8?q?=E6=A1=88=EF=BC=9ANA=20=E5=BD=B1=E5=93=8D=E8=8C=83=E5=9B=B4?= =?UTF-8?q?=EF=BC=9ANA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- android/src/main/java/com/imin/printer/imin_printer/Utils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android/src/main/java/com/imin/printer/imin_printer/Utils.java b/android/src/main/java/com/imin/printer/imin_printer/Utils.java index 0bb7718..8a873f2 100644 --- a/android/src/main/java/com/imin/printer/imin_printer/Utils.java +++ b/android/src/main/java/com/imin/printer/imin_printer/Utils.java @@ -241,7 +241,7 @@ public void opencashBox(){ String cmd = "echo "+open+" > /sys/class/neostra_gpioctl/dev/gpioctl " + "\n"; String model = getModel(); if(model.equals("D1") || (model.equals("D1-Pro")) - || (model.equals("Falcon 1"))|| (model.equals("I22T01")) + || (model.equals("Falcon 1"))|| (model.equals("I22T01"))|| (model.equals("TF1-11")) || getPlaform().equalsIgnoreCase("ums512")){ cmd = "echo "+open+" > /sys/extcon-usb-gpio/cashbox_en " + "\n"; }/*else if(model.equals("Swan 1") || model.equals("DS1-11")){ From 9a7fceca9163e44891a4133c1c00c2463702eb3b Mon Sep 17 00:00:00 2001 From: Huayan Date: Wed, 13 Mar 2024 10:52:22 +0800 Subject: [PATCH 21/24] =?UTF-8?q?Revert=20"fixbug:Flutter->android->util->?= =?UTF-8?q?=E4=B8=80=E6=95=8F=20imin=E9=92=B1=E7=AE=B1jar=E5=8C=85?= =?UTF-8?q?=E6=95=B4=E5=90=88=EF=BC=8C=E5=8E=BB=E6=8E=89jar=E5=8C=85?= =?UTF-8?q?=E7=9B=B4=E6=8E=A5=E8=B0=83=E5=8A=A8=E6=96=B9=E6=B3=95"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit f6994345f3190f05b61b35bbf658f62bec08ea6e. --- android/src/main/java/com/imin/printer/imin_printer/Utils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android/src/main/java/com/imin/printer/imin_printer/Utils.java b/android/src/main/java/com/imin/printer/imin_printer/Utils.java index 8a873f2..0bb7718 100644 --- a/android/src/main/java/com/imin/printer/imin_printer/Utils.java +++ b/android/src/main/java/com/imin/printer/imin_printer/Utils.java @@ -241,7 +241,7 @@ public void opencashBox(){ String cmd = "echo "+open+" > /sys/class/neostra_gpioctl/dev/gpioctl " + "\n"; String model = getModel(); if(model.equals("D1") || (model.equals("D1-Pro")) - || (model.equals("Falcon 1"))|| (model.equals("I22T01"))|| (model.equals("TF1-11")) + || (model.equals("Falcon 1"))|| (model.equals("I22T01")) || getPlaform().equalsIgnoreCase("ums512")){ cmd = "echo "+open+" > /sys/extcon-usb-gpio/cashbox_en " + "\n"; }/*else if(model.equals("Swan 1") || model.equals("DS1-11")){ From dadd8c0c0289d6b507203abf7004f140aac90fa7 Mon Sep 17 00:00:00 2001 From: Huayan Date: Wed, 13 Mar 2024 10:55:07 +0800 Subject: [PATCH 22/24] =?UTF-8?q?fixbug:Flutter->android->util->=E4=B8=80?= =?UTF-8?q?=E6=95=8F=20imin=E9=92=B1=E7=AE=B1jar=E5=8C=85=E6=95=B4?= =?UTF-8?q?=E5=90=88=EF=BC=8C=E5=8E=BB=E6=8E=89jar=E5=8C=85=E7=9B=B4?= =?UTF-8?q?=E6=8E=A5=E8=B0=83=E5=8A=A8=E6=96=B9=E6=B3=95=20=E6=96=B9?= =?UTF-8?q?=E6=A1=88=EF=BC=9ANA=20=E5=BD=B1=E5=93=8D=E8=8C=83=E5=9B=B4?= =?UTF-8?q?=EF=BC=9ANA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- android/src/main/java/com/imin/printer/imin_printer/Utils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android/src/main/java/com/imin/printer/imin_printer/Utils.java b/android/src/main/java/com/imin/printer/imin_printer/Utils.java index 0bb7718..54bc995 100644 --- a/android/src/main/java/com/imin/printer/imin_printer/Utils.java +++ b/android/src/main/java/com/imin/printer/imin_printer/Utils.java @@ -241,7 +241,7 @@ public void opencashBox(){ String cmd = "echo "+open+" > /sys/class/neostra_gpioctl/dev/gpioctl " + "\n"; String model = getModel(); if(model.equals("D1") || (model.equals("D1-Pro")) - || (model.equals("Falcon 1"))|| (model.equals("I22T01")) + || (model.equals("Falcon 1"))|| (model.equals("I22T01")) || (model.equals("TF1-11")) || getPlaform().equalsIgnoreCase("ums512")){ cmd = "echo "+open+" > /sys/extcon-usb-gpio/cashbox_en " + "\n"; }/*else if(model.equals("Swan 1") || model.equals("DS1-11")){ From 967aa21ea8b1a19b0e618b5efca18fb82186a3f1 Mon Sep 17 00:00:00 2001 From: "song.chao" Date: Tue, 9 Apr 2024 18:06:54 +0800 Subject: [PATCH 23/24] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=89=93=E5=8D=B0?= =?UTF-8?q?=E5=9B=BE=E7=89=87=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 7 +++++++ android/build.gradle | 2 +- android/gradle.properties | 2 +- .../com/imin/printer/imin_printer/IminPrinterPlugin.java | 3 ++- .../src/main/java/com/imin/printer/imin_printer/Utils.java | 2 +- example/lib/pages/v2/home.dart | 3 ++- pubspec.yaml | 2 +- 7 files changed, 15 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 30f0e6e..eab8824 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +# 0.6.3 + - fixed printSingleBitmap To Url bug + +# 0.6.2 + - Fixed bug and Optimize the money box function + - Fixed Package name collisions bug + # 0.6.1 - Fixed bug diff --git a/android/build.gradle b/android/build.gradle index d41095b..5f6a684 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -39,7 +39,7 @@ android { } defaultConfig { - minSdkVersion 21 + minSdkVersion 16 multiDexEnabled true } dependencies { diff --git a/android/gradle.properties b/android/gradle.properties index 5943977..8133fa3 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -6,7 +6,7 @@ # http://www.gradle.org/docs/current/userguide/build_environment.html # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. -org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 +org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=GBK # When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. More details, visit # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects diff --git a/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java b/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java index b324498..d199585 100644 --- a/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java +++ b/android/src/main/java/com/imin/printer/imin_printer/IminPrinterPlugin.java @@ -373,6 +373,7 @@ public void run() { } } } + result.success(true); } catch (Exception err) { Log.e("IminPrinter", "printBitmapToUrl:" + err.getMessage()); } @@ -611,7 +612,7 @@ public void run() { break; case "openCashBox": if (iminPrintUtils != null) { - Utils.getInstance().opencashBox(); + // Utils.getInstance().opencashBox(); } else { PrinterHelper.getInstance().openDrawer(); } diff --git a/android/src/main/java/com/imin/printer/imin_printer/Utils.java b/android/src/main/java/com/imin/printer/imin_printer/Utils.java index 54bc995..0bb7718 100644 --- a/android/src/main/java/com/imin/printer/imin_printer/Utils.java +++ b/android/src/main/java/com/imin/printer/imin_printer/Utils.java @@ -241,7 +241,7 @@ public void opencashBox(){ String cmd = "echo "+open+" > /sys/class/neostra_gpioctl/dev/gpioctl " + "\n"; String model = getModel(); if(model.equals("D1") || (model.equals("D1-Pro")) - || (model.equals("Falcon 1"))|| (model.equals("I22T01")) || (model.equals("TF1-11")) + || (model.equals("Falcon 1"))|| (model.equals("I22T01")) || getPlaform().equalsIgnoreCase("ums512")){ cmd = "echo "+open+" > /sys/extcon-usb-gpio/cashbox_en " + "\n"; }/*else if(model.equals("Swan 1") || model.equals("DS1-11")){ diff --git a/example/lib/pages/v2/home.dart b/example/lib/pages/v2/home.dart index 524b5b2..56c0791 100644 --- a/example/lib/pages/v2/home.dart +++ b/example/lib/pages/v2/home.dart @@ -204,7 +204,8 @@ class _NewHomeState extends State { width: 150, height: 50, )); - await iminPrinter.printAndFeedPaper(70); + await iminPrinter.printAndFeedPaper(70); + await iminPrinter.printText('232323'); }, child: const Text('print singleBitmap'), ), diff --git a/pubspec.yaml b/pubspec.yaml index 52b6573..224ff1d 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: imin_printer description: It is used to print text, pictures, two-dimensional code, bar code and other functions sdk in imin printer using Android system -version: 0.6.1 +version: 0.6.3 homepage: https://github.com/iminsoftware/imin_printer environment: From 62c8d298013999feefa294f2b5649296e88d9307 Mon Sep 17 00:00:00 2001 From: xiehuayan Date: Tue, 9 Apr 2024 18:18:18 +0800 Subject: [PATCH 24/24] =?UTF-8?q?opt:Flutter->android->api->12960->?= =?UTF-8?q?=E8=B7=9F=E6=96=B0=E5=BC=80=E5=90=AFSDK=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E7=9A=84api=E3=80=82=E6=AF=8F=E6=9D=A1=E6=89=93=E5=8D=B0?= =?UTF-8?q?=E4=B9=8B=E5=90=8E=E6=B7=BB=E5=8A=A00A=E6=8C=87=E4=BB=A4?= =?UTF-8?q?=EF=BC=8C12960=20=E3=80=90react-native-printer=E3=80=91?= =?UTF-8?q?=E3=80=90SDK=E3=80=91printColumnsText=E6=89=93=E5=8D=B0?= =?UTF-8?q?=E6=97=B6=E6=B2=A1=E6=9C=89=E6=95=B0=E6=8D=AE=E5=87=BA=E6=9D=A5?= =?UTF-8?q?=EF=BC=8C=E5=8F=AA=E8=B5=B0=E7=BA=B8=20=E6=96=B9=E6=A1=88?= =?UTF-8?q?=EF=BC=9ANA=20=E5=BD=B1=E5=93=8D=E8=8C=83=E5=9B=B4=EF=BC=9ANA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- android/build.gradle | 3 +- .../iminPrinterSDK-12_V1.2.0_2404031803.jar | Bin 0 -> 716920 bytes .../imin_printer/IminPrinterPlugin.java | 18 +++++++- .../com/imin/printer/imin_printer/Utils.java | 2 +- example/lib/pages/v1/home.dart | 39 +++++++++++++++++- lib/imin_printer.dart | 16 +++++++ lib/imin_printer_method_channel.dart | 12 ++++++ lib/imin_printer_platform_interface.dart | 6 +++ test/imin_printer_test.dart | 4 ++ 9 files changed, 96 insertions(+), 4 deletions(-) create mode 100644 android/libs/iminPrinterSDK-12_V1.2.0_2404031803.jar diff --git a/android/build.gradle b/android/build.gradle index 5f6a684..49b6e76 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -57,12 +57,13 @@ android { } } dependencies { + + implementation files('libs\\iminPrinterSDK-12_V1.2.0_2404031803.jar') testImplementation 'junit:junit:4.13.2' testImplementation 'org.mockito:mockito-core:5.0.0' implementation 'io.reactivex.rxjava2:rxandroid:2.0.1' // implementation files('libs/IminLibs1.0.15.jar') implementation files('libs/IminStraElectronicSDK_V1.2.jar') - implementation files('libs/iminPrinterSDK-10_V1.0.9_2306201823.jar') implementation "androidx.multidex:multidex:2.0.1" implementation 'com.github.iminsoftware:IminPrinterLibrary:V1.0.0.11' implementation 'com.github.bumptech.glide:glide:4.16.0' diff --git a/android/libs/iminPrinterSDK-12_V1.2.0_2404031803.jar b/android/libs/iminPrinterSDK-12_V1.2.0_2404031803.jar new file mode 100644 index 0000000000000000000000000000000000000000..4b1da2a7c84a9d7f30b013919e28f50fadc09627 GIT binary patch literal 716920 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ϯvv5{WCoCzaY#L;EoWGp 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 (|f?Hb0u7zJ{5lcY={ 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 z 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�W*?s)Q?_(oQ)JeCdI_(0f@bsK zUk|qhyPk@4Vb5d>m)q5LZh2PUp+XKyq6_C@N4>T<>9iR=o=|9`d9rbW>??PXC8Z*nmt*wr}oN7q*m$m*OL-g zZpeB0KDDhX%`GbvKJ=_KN9g&0y?Tr2Hm|_C6u|*{`u@dcIv3wFr)r7wY*01`HsOEi zX-pe0n4vyeICqyucwzquppo#l>xwSLPkIFUORQdW=T47A><qGderAx<_e zna!7mGgkFL@+NQJyB`kPDP4Qc*Y91u|7pP8g5u{vzp}R8DEj@ln|{RXF0ZER z#}=Dke&&3UTk5EW+|1c5Ro0n~3pwmBmCBcwFEwAJ(UzN^E!iGu%zT-poH2;uGFv%Z zS_zWyV7k1xoSB0r_<(S>_+{R5rgHjcwAEbY-W7vL`#&^8M^sb(u zbzkoGFB^a5j+x}9Z?`O$D`+@aP~ zS#mA+uJ&~r7hjp{zx7nN7!zLU!+ECskXWb2L@C?X=v90%QhYJI5wBPhSsUKx?VaQw zp4(ozpOtS&W8Dn%$`QB8iOiB7``CKH1J5;CbhMIAT#Svizc(y*U(Bdl!jt=pe9+LA zibki@Uy4e%-L+Qrouqr=yJOZ+)4=Q$uSm=8=D;YI@4_7GA3w<#X^}H|pI7}2`-|4j zjANs5600*H_)K49ie>m@RW9@>%vvm#NE} zbV|d_zwwK!^5?b4ZQL<6U6%e$KSOY(U37}%bG?kv;=s#VLpmISS)&G?6SV2J4%?Lk zSDSt1xcTL}q46^0@5G2j&l)ek^})9(VW_JDWF?aF6Vk#Pw`9*$-Q; zWmAhzJ^YiN=MmpKH#3h7Hrk$7GsH@`6kiBrHGM4z`n5E?H`IfDe|*j7w)Fb*>CJ^^ zTsN|tBV}C2#oig%h$nu_k(lMldhDO=IV<$|J!@Ccn;qe^x>@!11!rd0Dks+Mn5ytR zyvL|oC3wCyg9+iFD-;ODrZC095t$yvLRIkD3I})lXv{P?wYl}D}^Z!&FRFykQ#hW=FG_CY# z_{Gmh!!PFx(xN6_*DDwY#C=vW96hv$Kg#I%++FSdvgwvG<KQbneKw|zMYj>vrknoKK;-#l6R3+)-F(0173Wlz9V&B zaH6{V<@&wbPYmu6nGOhAciqQ&$b)<1?ThlGz8_ycR=M$E{gy>GRj<9d-zN?`*;F-r z+RL}u&E)$2;I4IBbQ8=N3&XzHJ$>T!Tf-nPDrI+n+|TIZSK?CVOh2ep_{4GsSq^qb zsaCWt8k~v>nVo;A$y_HW&i7>Gans6sT&15TN)0}jJacbya4&JB(=r_2nHG@snfCP3 z3`hCfEyrb#y6`BSPdMd$uSV6OSbZdOLP{z&f=OzC#(vaW@o1`O!JDq2`AvbJou6dJ zGwk*_E#|iNE>7=jwrJk93 zuS%puorYJWM3rWo?X+P}jnNH$(bhXPA(tAKjBB)fNs9d-(LPRjs&X{2@VWYX`D=WA zonKVi{hnt8I$zwkTA|%P?G#JLk(^ToHynBF+>3jzO5PW*d$9KqU#oG$$P;ge%47W( zuQF$S68>>+(-WQpHoQ)P3a;hp-K8(+evS*dMjhO9e#+sFQd3)@J}+bFr5uZ^_w3jN z)-!PJIb!r_us&1R_tTc{;+x$5IuRjSou!XXWZXS)U`CTuQSDTzsRn&Ubo`t0*@$bm ziW!;8qM{}~6*P`4yl~Fi?WUH$Q1D3k`koCZmPC}EJ=Wpx*sOEOo1xR^ZjqJa?MUtU zd@rV|0b{2XM)0l7wh?l-0{8oRbZ_7yX76?E5@^ui-)^@eEsDf z=v0(O>yr@Ybih>Q-ixgz5^lQ<1U287hr2(3Hx?H<*GL~xd%FEj$~Hm8>nC_ZY5NWb zFf~^8JZZiB##VfD%-mT#3P z`&>HFX*`WyF~z#@qkZbl(tA6;uAt!1^U zE;t2?Yvnv1H?G~D;hs}d)YD+``{tp!pt{6sy4Ut^^w~J=d1Yg3R#s~1QGtr8W4_PiIW|ZWa8r?xFB4i2+~Sb>eH|Pl89ZR=r!N(-ov~JUq*7E=}0I zY0*Ghh*i9}@MovnvzB4qkzp@|dtF68m-2+Xps}I5`S|&LuFwXq-}PLq^(Ujo8b5Z- zb6QRWKR9nc7%?fZ`GDE%%LA@wJu`f>y9|xP!yXEQ+-ecUKQ@l0Zu{uu6fE#-%K5Vq z>m8f@sjvH7c4)P?KlG}aGq&!=(9OHO1LoRC^kL@9P*wc>f>=~+3pP<;M$ zm}dFj&06(qSNkzth_yVgwdc;P!mY9#+V2ZD&&V6yTvz=bB^`l(YIMRzJzYt8S@`n?+ij}{xp(W<;x z-SK{ro^n?of6>vOOI3I63v}Knrq+|aQ*@`$i6-^N7=g=gCY&6uro0u?vhRFUEA-}C zZ`tIo)|gkJ=eF(VoZUYlcc5-*^n+i09lZAhEAECY`%=E&_Xd9(U0uhozT3=WwgWTw zboz2Xs0{Gl(zTJLxzQc*CVEL^Qcu@0j_p#NMly}RIt#oCGpg#>dK6aFirMkrGTR@M z^z3(AUy+VI?ZT}dttpO4iEI6#8z+C4&z~!?>UvXc}SF=poahyg|H0R}><0a~pV@sQ~6yXJaT9lbJv+?Tc z^)XCg2KR42{Y)1_J7&dTuMovB&pyDwQ0M$%&1As6GWe8c(vAu0>+88G^LGv|{&0?tyDLWbKHomSICn~|x&mt~=(Y)>EJL)2vXb%WBQGSK) z+Z;Df7iN9`_tWnTqx2g@20yu3$Js5OwY)EQ<}Ld~Tz`Z9eRspqxKv6YgP>B^iV68_ zvB9VhTli)VurT;5?OPEfk}c$T%<5dW?EzT^5jV%U%?JD#ZlBg==v#VPY*5r~Q=Hc# zLk6j*BMjCwr)3?_oXN}PY^P0m?G> z*q!=b#5_DEDCarRMlp4lUOBUEcK-OAvbh~v4QYyYjm6jUCdI-p55e~Xz2y!MvlX(sC0|b-gTv z=Di*^Y;YQxp?j?RYxg}1{*Swrr_LVxF>DrDC|7vwThYeW8yTV-qh_mjF(~%DEx21d z%n;PjA$_rb^^`#^Ykc?`t~~?#O|*;Q59wvHB?C0YXIzrcJV}51X+lv^srJTp?z>`L z3VyFI7(Q`eA2nq2l&d?@@8Y?zW(kK{yOTu@!%wNt^TPJ6F6+eywb4PVkm+|rWvkjGk(_CSb=M%-B zeoGs&y%u`o^&?BCf&8~Y+08NO{YsUw3guzK?=|XZXH<1+UR`>#^rYOS71j}9e7j=TLFwtL}0A9{Lz>+2(`JogG3 zdM1_Mvwl0;!ab%p`Pd{TUF*Ie@7%-IFu9mlS2T9nE^iu?3p=ExT5Z#Mtm&>_+P8Zy zJiRg@TjaQVIv<>BYQA{l8+!%z63s<49JGuS%F?BjEE#)|u(U;jO9FZNcpKMrQY4Hkvl*O-)ledfOgJK~08TDx#e&|Vd^rUovu@;}2d zty!Rk|9v0yzg2}%Cao-z4#TCutspNCj&gq)LI|gSUlyX~{PyUR`~cE)fDQ4|#4Sg0 z{@HNs|B(hW+yyQoMV_D&%~rl+J|OpVhyyGP{{3?)wjDX1L@9fUBNv8YBAFlq9O`X!2e>v9(c@2Sro?kpOu3569FXx#)+U4t&+55lMvN>U>&?= zcA|!psN`TxL+TW$Qw}ai;r%2^6(IzvpIkRxyyqP-1is-gDcS{ zp478?td8OkRf~B)kKO4vtzex?%+!=P9|Q$qAdI3T92#?R?c5Q5@D7DGyx zo+h<{m2ANER{z^|;m=F4j*x$;+|EhPWesQ<`yYC4?I))5UV@gdLuA9%r~mw1iuH>m zr=eMITx4YK!0hV4oB94j!X!&LK*mCoj(HhWCI}r39&T z63JL-sopLvKJpnfZv~piThJ^SO+s^Su|MBY39}<+)6nBc4v9wt=r#7v67n=ekMbHs`X0sV+5_)FrUB%xLfFnfEb=?^x$Cb=4?`}Hu6D?8nIW!3^ z(U(S#q<7G7aKKlzc=ofq!6p$@vQpg3E(jv5L@_qvmQB~Byp^3X;`%el41=cMLg#BI7$qX z3@z#DeOw8$A~Sdm9%DL#!XQF{S}FMIS2Ih%I1{R$NGjL*XpkZZq`-U07u0YPl^E{7 zKQ|3p-2{C#o{}?<5Q0P_Lt=YvFm2>P4B;sqix*MncV{_-La=IM)A8lkQ<%{+!i+eU zA}D{q3i!W!6Kb{MeT|!uNFn-K!!w_uX{ZE>APKhU`1jAHSbgMp(lV9Iz9Jz4rg9XN zf(J!1p#*VUL!w=uCA2rqVbx*={U+Yu1)sGy^CE;Gt&nCaUw%43U2B3h0-jSPh~$vyHc+WoGZBpB z05ah@CZb3ViSPESoxYE8TnU`z;z$m{doeAyXe`Jd1dbDd(#&$e7na zNBDWA$RIh0%>9?um#faUgFJ%-d49+vIqpQ~!#K(tZd(@v=K_H<4XKo>19XvdTH}G{ zOnTTn>I2Si0_U|VlH-Zy92U5|u>?5R37l{0NRAhplY0H>K_$?01wqfx;TaXgyu8sI zXC2$27BCdOHg$Au)<$uNlt1S_9UCHrnENu8YZ~r@*?1A^Y%p>>Ns#M&*5iZfK>L=xuvU%pJ;N_y`e0W4xDYk!B@9KF(?j+g%yiZB3dArIl#*JglCd~ z#E^({e)&+00(i+M5o&SFlTjR!dN6S*SULtwtpOt8J-6mG3PZZg;fV-y$OTXk0Tgr= z4I)v{OSKCuM*tKKApUbU~ALW zu-?JzX%aRbsPd<)JZue+DEvIF)O;s+^&!{}!@E)PbtDMwjbb70vhyHMFCjS6s!B{eDeVPhd^#upUQ?~Cw2tiVG?ellCS_7pMJO)o;*@>VaDlWA`AYJ|a z^VgAxmDC)!&DsNs9V9rL&~B6%Bs!6rPSsQf%zgr< z+zN$3C+h5r?L;FjC8BjT!AP7m7>)fE9Avzm|@n2n%kO12~hv0kz@3U>TC=5v( zvhfIWe-}tHN|;oN9}0tLL#Qo{cl}cV1dKbu^`&z^RADb{I0nCXcYBB$PGV={`0+$+ z*ENS06o@6ou%^63g!C!>{+i{c1rX{G=QzP#BUWR@?Pxbu9N|RT_`k zU5UbwEU~V2C#=J^#y5b9@mmG_)hLWF+4e=9SmjYn$@2sy_thXl=o;-IvDoSmOpB8+ zEu}gXhGeal=GKx^37BpIW(@j8q92p2)rP`9II{u5kua(L`zQ>_S}n#ptyT-9IS#*g zTdi$GVMx|$%OC1VrUPO#NQAf5`G+XXf8Odxz09)i5AN`WCDty&y4tG=2}0Y-a?7E5 zGgy9R6LyD|!Rm{sWW=J6x-8%;T*fN`#*g5;1CDeZ<=>Pz5e$vL=mh1c;Z1{4SFFB?{<8`8j*% zlnzk@g{0EaMkYRPfW4EmK*GzyppKv*3LUl6;d>F9Ekp{j7g@ILfZ)I(3Pt-hbx12C z$CJ2Sw8_yNY^fGW*nZj3f)azo&Kyp+_kROBj}xkYawiHyV&<@K#l6_=Lr%hhP6=Es zq6%nFU~(NRS;z91@qu37d{{;B#z%wwxwnWbixLS0Z$np zK~NBmkF{nh>YbNf0c9D1!UWsUR5tb^Yw&I>lpQdF8SN)%mml`02o#e3uJ)1S-rYcW zN6>E0Hv|RI-ch?7K9psD5-G$`j_zuXzXIC8Hj?nw*#SA8#Niy8Bs>~HC7y&B-1HkI z28qY5wBtD_2RgAPY!7doL19Q-PM(hLGWU_ zTaGKVC=BT}KK+%BG*FHyUm=+AAfY8_5Q%>Fl$($KpvhGz49P-g)s|m5`(a8K2y22w5fp|b5OxgOC9QxU5FsR9btv7`;Uq7Ihy=`9 zqt;2kv3o#61f$2xqc9{3ow@r_GHq~m&3i4iil>xO7{o${Ixg{LU_qaN@g|gkO(*gk zuuCb}ITAkI$!|vtCyB~7R*vB-5RrDU<&CFk8zLwqP8U+NkY)jLTn97bDXYy96q1-^ z-TAr<+c-P`Bz!k^)e=D=J-u!?s`b?oBq@YB;W@W$kQ|a(wS~Kwz6N=$3Gx^_BRM4V z>JgDxu?5xvm$|96;|jHt%6q-Zc4wDLF;6={M9zS(;C0*|fS@4C8@1Eni$O5NDYY!b zV$i#@b%+)GMU#+z3z6eV-0m&U)rcI(nbw42@Ff-{28o3NR;^v_1(tq6I96*+Kw%ID zqE-q%65WmxFg}DxJh&_W&`W3;u-iv?%VeU4lc=P*D3qxR>?;pu!BZ}$B7`8($fA@0 z;dv<5yr5jX?`NJyP)Ju;i(B8u(tvTWhbQoyr*QU79yrwmj(s7LgNP$cp7&>zW8Z?F zf56=E^6(TRIV1(LN8GO21#-hX!c}OMYbXx7TDxlNZ~p+^2RC!6e5b7vK_StNaLPsl zC(zAF&<)-LKUE#i^)8a!5RI zssEc2Yhb)2=;l2oh$uJAeh@?#=}n8OR62Z(QhxTe5heDB+b98Z$4p7C#3&kF9(455w3?CM5|fv^wt zZ1BnV>~jJJ|EMVzh%APU?;0R&ULusmC#d0Mb2&DZbs5Zik6_+LxP(mQB)()%D6*x@ zT$%TL+K_N+X{-FYPjG$LBpx^_j>l1=P+6IYKsA=^<%i#kDY7ylKbMjrYMDS#gLjJx@0ktf=CL~M#j7B87U%#=&~uQ57=Pap2A7+wHD-f5;HGe zdTV4QV20rr@3PghC@~N&i}_qrz=uQF(}{uvX&4kx7!pJG?9aAi$ ztY!`h<4%_UhgP^fKL?QGpkzEKIu8vZu~v%P^jIu7T|Hr9W(7zPy2fr`DmK7QUf_ll zm9?0vP?-NAdE?Vv6Z9lhQHg&<9<$Q9GurlIppo^EtnfiSg&Iy02Zswsk{e(yB7{V> zs}3OqiDF}0PL1vY0&&~Us2)KfiGt;489M|)r|AS)UOYfhNP?hURJk<-^fF7(i|iu= zg(L=KDmQAzf-Kk}9bUVAEeHxp2xKNt9f3kh!H$sdloPE83Q4b!-o~ba>E$FrmJ?kF z3c}qmf06w4Y!Z9qqy*%_%krTcK_S`ku-+2A2a`h=Rs?v;lU@V`vEhNqB7WF!>k6>X zaYB(ze}$ls9PA$K*Qv)I>Pdka;mhOew+M<4S$@&JnLQ@}3@(C|?!lWE2!Tj)KHTzc z?l5)|g>8=FHN)`p;zx&|kX*fu%eXiE5n68^&@f&v z*6<8J!RttF-deb1mdXM_mSCe$1_XuV;_WB(e(lXb=_SbWk`X~c+`IjAYiG8MNFla% zcD)WG;H+4UIuCmo`|W;VEbN5JDiPf;p_b;cZ<_pu`g>y21zwqC8V8 z1mC$=ttC>3=9Oc)-f0dYa~7n)+vO8-Jc&wpTDHy%L-Z*D3XchqMTtS86Zg^iZHZtX ztV6{&m8TR@7}EVQ^Si$3M*t*F0PRvngGeMw=i1(g-Fv|)^Eo^>j_Ie=@UTDYBfAwc9|z&8(F8m=g#e-D*>%{y@fM_vC4~L-05cSZ#PE4v zmeXlKuwtj*c-5 z9iF5{fk-mYkhKrz9JJ&t%G49%gC{-^AfoS37YcmkG~Q3Z>?KrAxp%ZRd@vm~m=3m9f2z^Xw5UIsN_zV28%`~iX<7KjCCqbcY zmfX>ijNLrLUVe%P6|F*pNUZk!aKHH}Fg!b<2d(8pg3$8B`;H1+0Dq1nwARUMQ5Zzm zM;+++cEnzafC(gIEt9Y1H`^f2?}8-wY;znnoFvRUdse(I0^M!~=fP7>$smLv@tTy# zHR~$C%#nb=Q-b6X6q0Jm`t0uY~v9W)UX(xpa7YH(#NEHw^5y1+|wP8-ER zTUkQRtHKbZX(s5`%m6_liSVIcN!!nZpBNH$lzWU26hwi;vR3e{kZm*AnvEb!5xo1C zssRp^`yU(*Us*0&5-G&WQlldI4tshJo|U3XdVR?8BrbPjf7|N}Kw!sacrzzkqr@P4 zLr(c=D?27&SQ1uEmbNGkiSJJC?YWo=v%=0G@Zw~_6+LR*!n=P--jJicd>KO@*hhjO zj)OCbLlOi#wj4bd0GQ2?gz@48xFazn;-sz?GOqybSQ8py9&Z$fBxSx!ot#z$j4Svs zUL1OOH3(5VE+pb?ZO|7M1&$OHD15;T4nlEA!l}~4ReLuW>IG;BFHT1o5X01pQer$rK%k^yXs^&oeL2vLhe6OF`>h;!bg?QJ4x#)z=oh=n%-62(CT zIF=?N^uiR(p-2t^3a=flGe``HIG-QnPYQsBEeTthEpSbmC=SVfgk8JhC?{ZU6I^+9 zE)qi`PQ$Au*RT%h8KK_#=A$?y`x+m;rUw`SkqZ%l*G_K{57i=ArYtXyj5)zXy+^;&}k}B9FjxJaG9$|O~F`w;6Hfn zEV_%tkce~3F1*1DQeXj87<^=<+(U6lPA!)_dtSB*#AzTbKct&c7?NX4wWZpJJOJ~O zfQfv9!jPO>Mm3Kx`a_K{1AE~o#oLa;kQ`iIS-p!F+iJ!h^TuQ9J5ZRt=*}d-;BF9h zBS(dhyyPH6h~Y_cba`%%iZ*u9bdI2#XFVtk$=Ri_*pJp5pqn{@Zc_VD7?Q)wAFkZj zu*aC=2$KqWg~E`WUN&zzu)!O8KRvishF7s%KMF%~d|B&67n%u@1QUvR$0!Oza(>x% zVDI?`P_aEBb6xy~!XOSXvApgz@p0S@bc0>1!B6VUI0{4Z;vnY>zLi+fQzu|lf1xlW zFAn-D?wv$o{=Z)w#6Cm7>?16HzMicAbQ|iNE0kY+ldppsPST6=pLbu& z3Xkk4L(0Qbdo(ZA~$bDq*dEQ3zbtN0jh!rv? zo>B}qKnN6)hV8RZzRq)yr58we$`3&Vg{0473xBhFEl{vi2|Q&%1VJHbj~=GPriMal zum*3zQ}(PyP)NEOzVlkwk|7Rl2#<#|K(9^E3rRE5IcfV&31q>JMDemTDB*M_()>s%E(!;%WHyN9{C_B zi1qrP6*9GtKnW(4u}&U7b?gLLnlKf~AjEJIg``e~eWeE{Z6@q8S%)JiBnp|-60__C zg*Xxvk{OGjAQXZbC+^VX4H$fYGw`1pbY+!Xf zr@j%%A;}7v916DipqXJ}6W4^|5Ow_LAb8hGpo9^EKLKN~5X7uEr-i`D zl0kAvviGt@fu)+@eTL95;N`g>kK~YeF$*WlWCnOmKb!~Pt;GS~{z;q{F@N|n4 zEB0lF41}CJun9pSSs=!D*Ex8AZf2pj;bnQJkD!n&5Hla$dH`>=rQ9P>;tUWJl6_do zR!$Y{=tqE%^(1y8D2N5wpA+~xGXf=okicJV&G$Y8j&hN(D)dARMhgSzkjgT zM2o^(ZSW>`4fOFOe$Qt>LFwTh7>BL9h5rqJKQF~vkq~qoeSDl8ok{i+lBQC;^g+3y zpj>qv&)*6ykv@Dyt}*six4VKoefF*S>u+`Z{rp^=gUrMClK8e{e)y(k;0c!SQIfci zVYU6AJ_eys%-ii=mrAV?hqv|afjjRwuCx9B!bQhWw7STOPPo&xQ4sn=9Q8gN*rCj1 zVyffs;;QfG_CI(ZK>z;14BwN9CW3-p1Kk{*U5UG(?-EpHh5&&*th4UlEco+MEa&Ne zhGC{Nb=?>26ZB`#ICJto%MYL`z^7>7KE?3N|Mn@af&cV5)G_gY=@U~;W)}K$h+njf zxq|kysSQlvUW`zDrE&6h{F(EAzD(j|9h`^Qu@`u@fdk{oVi*1>;s23IN?D}0iv2r? zhXotzu%OHS-^fGT5|DESp=jcD8rby*2{-!$y9W9D2YF!0hd6i4584)VGYeM3YnC=s zC~I*-zkl&3vhUu%5*iv>Th8}x9H0j`QRkWV=|4fkgIxEKi`ubnj{XTa7Av@|1Wr^2 zK1O7o`O8dLs@duv=<7&w9JYVUceOfA>FVpxgGL_8QQ@z;AZHE@S(ILW! "+qrStr+" "+alignmentMode); + iminPrintUtils.printQrCode(qrStr, alignmentMode); } else { if (call.argument("qrSize") != null && call.argument("level") != null) { @@ -612,7 +614,7 @@ public void run() { break; case "openCashBox": if (iminPrintUtils != null) { - // Utils.getInstance().opencashBox(); + Utils.getInstance().opencashBox(); } else { PrinterHelper.getInstance().openDrawer(); } @@ -1127,6 +1129,20 @@ public void onPrintResult(int code, String msg) throws RemoteException { } result.success(true); break; + case "setIsOpenLog": + if (iminPrintUtils != null){ + int open = call.argument("open"); + iminPrintUtils.setIsOpenLog(open); + } + result.success(true); + break; + case "sendRAWDataHexStr": + if (iminPrintUtils != null){ + String open = call.argument("hex"); + iminPrintUtils.sendRAWData(open); + } + result.success(true); + break; default: result.notImplemented(); break; diff --git a/android/src/main/java/com/imin/printer/imin_printer/Utils.java b/android/src/main/java/com/imin/printer/imin_printer/Utils.java index 0bb7718..54bc995 100644 --- a/android/src/main/java/com/imin/printer/imin_printer/Utils.java +++ b/android/src/main/java/com/imin/printer/imin_printer/Utils.java @@ -241,7 +241,7 @@ public void opencashBox(){ String cmd = "echo "+open+" > /sys/class/neostra_gpioctl/dev/gpioctl " + "\n"; String model = getModel(); if(model.equals("D1") || (model.equals("D1-Pro")) - || (model.equals("Falcon 1"))|| (model.equals("I22T01")) + || (model.equals("Falcon 1"))|| (model.equals("I22T01")) || (model.equals("TF1-11")) || getPlaform().equalsIgnoreCase("ums512")){ cmd = "echo "+open+" > /sys/extcon-usb-gpio/cashbox_en " + "\n"; }/*else if(model.equals("Swan 1") || model.equals("DS1-11")){ diff --git a/example/lib/pages/v1/home.dart b/example/lib/pages/v1/home.dart index f4e4d7d..765dd5e 100644 --- a/example/lib/pages/v1/home.dart +++ b/example/lib/pages/v1/home.dart @@ -1,3 +1,4 @@ +import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'dart:async'; import 'package:imin_printer/imin_printer.dart'; @@ -7,6 +8,8 @@ import 'package:imin_printer/column_maker.dart'; import 'package:permission_handler/permission_handler.dart'; import 'package:fluttertoast/fluttertoast.dart'; +import '../v2/home.dart'; + class Home extends StatefulWidget { const Home({super.key}); @override @@ -22,6 +25,7 @@ class _HomeState extends State { getMediaFilePermission(); } + int open = 1; /// 获取媒体文件读写权限 Future getMediaFilePermission() async { Map statuses = @@ -89,6 +93,7 @@ class _HomeState extends State { 'iMin advocates the core values of "Integrity, Customer First, Invention&Creation, Patience”, using cloud-based technology to help businesses to get access to the Internet and also increases their data base, by providing more solutions so that their business can take a step further. Through their efficiency enhancement, cost improvement, service innovation, and better services for consumers, these aspect will drives the entire industry development.', style: IminTextStyle(wordWrap: true)); await iminPrinter.printAndFeedPaper(100); + await iminPrinter.sendRAWDataHexStr("0A"); }, child: const Text('Text in word wrap')), ElevatedButton( @@ -97,6 +102,7 @@ class _HomeState extends State { style: IminTextStyle(align: IminPrintAlign.center)); await iminPrinter.printAndFeedPaper(100); + await iminPrinter.sendRAWDataHexStr("0A"); }, child: const Text('text alignment')) ]), @@ -112,6 +118,7 @@ class _HomeState extends State { await iminPrinter.printText('测试字体大小', style: IminTextStyle(fontSize: 25)); await iminPrinter.printAndFeedPaper(100); + await iminPrinter.sendRAWDataHexStr("0A"); }, child: const Text('Text fontSize')), ElevatedButton( @@ -120,6 +127,7 @@ class _HomeState extends State { style: IminTextStyle( typeface: IminTypeface.typefaceMonospace)); await iminPrinter.printAndFeedPaper(100); + await iminPrinter.sendRAWDataHexStr("0A"); }, child: const Text('Text typeface')) ], @@ -148,6 +156,7 @@ class _HomeState extends State { // typeface: IminTypeface.typefaceDefault fontStyle: IminFontStyle.italic)); await iminPrinter.printAndFeedPaper(100); + await iminPrinter.sendRAWDataHexStr("0A"); }, child: const Text('Text style')), ElevatedButton( @@ -159,7 +168,9 @@ class _HomeState extends State { height: 50, ) ); + await iminPrinter.sendRAWDataHexStr("0A"); await iminPrinter.printAndFeedPaper(100); + await iminPrinter.sendRAWDataHexStr("0A"); }, child: const Text('print singleBitmap')) ], @@ -178,6 +189,7 @@ class _HomeState extends State { ElevatedButton( onPressed: () async { await iminPrinter.printAndFeedPaper(100); + await iminPrinter.sendRAWDataHexStr("0A"); }, child: const Text('print AndFeedPaper')) ], @@ -193,6 +205,7 @@ class _HomeState extends State { await iminPrinter.printText( '测试打印字体iMin is a service provider who focuses mainly on the field of business intelligence, bringing IoT, AI and cloud service to the business sector. We develop and provide a wide range of intelligent commercial hardware solutions which help businesses to run more cost effectively.'); await iminPrinter.printAndFeedPaper(100); + await iminPrinter.sendRAWDataHexStr("0A"); }, child: const Text('print Text')), ElevatedButton( @@ -213,7 +226,9 @@ class _HomeState extends State { width: 250, height: 70, )); + await iminPrinter.sendRAWDataHexStr("0A"); await iminPrinter.printAndFeedPaper(200); + await iminPrinter.sendRAWDataHexStr("0A"); }, child: const Text('print singleBitmap in align')) ], @@ -233,6 +248,7 @@ class _HomeState extends State { qrSize: 4, align: IminPrintAlign.left)); await iminPrinter.printAndFeedPaper(100); + await iminPrinter.sendRAWDataHexStr("0A"); }, child: const Text('print QrCode')), ElevatedButton( @@ -254,7 +270,9 @@ class _HomeState extends State { fontSize: 26, align: IminPrintAlign.right) ]); + await iminPrinter.sendRAWDataHexStr("0A"); await iminPrinter.printAndFeedPaper(100); + await iminPrinter.sendRAWDataHexStr("0A"); }, child: const Text('print ColumnsText')) ], @@ -274,6 +292,7 @@ class _HomeState extends State { align: IminPrintAlign.center, position: IminBarcodeTextPos.textAbove)); await iminPrinter.printAndFeedPaper(100); + await iminPrinter.sendRAWDataHexStr("0A"); }, child: const Text('print barCode')), ElevatedButton( @@ -295,7 +314,9 @@ class _HomeState extends State { width: 250, height: 30, )); - await iminPrinter.printAndFeedPaper(100); + await iminPrinter.sendRAWDataHexStr("0A"); + await iminPrinter.printAndFeedPaper(100); + await iminPrinter.sendRAWDataHexStr("0A"); }, child: const Text('print multiBitmap')) ], @@ -311,6 +332,7 @@ class _HomeState extends State { await iminPrinter.printAntiWhiteText( 'iMin is a service provider who focuses mainly on the field of business intelligence, bringing IoT, AI and cloud service to the business sector. We develop and provide a wide range of intelligent commercial hardware solutions which help businesses to run more cost effectively.'); await iminPrinter.printAndFeedPaper(100); + await iminPrinter.sendRAWDataHexStr("0A"); }, child: const Text('print antiWhiteText')), ElevatedButton( @@ -324,6 +346,7 @@ class _HomeState extends State { ), doubleQRSize: 5); await iminPrinter.printAndFeedPaper(100); + await iminPrinter.sendRAWDataHexStr("0A"); }, child: const Text('print DoubleQR')) ]), @@ -345,6 +368,20 @@ class _HomeState extends State { child: const Text('opencashBox')) ]), ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 20), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + ElevatedButton( + onPressed: () async { + open = (open==1?0:1); + await iminPrinter.openLogs(open==1?1:0); + }, + child: const Text('openLogs')), + + ]), + ), ], )), ), diff --git a/lib/imin_printer.dart b/lib/imin_printer.dart index 27c3b23..a5bf0ee 100644 --- a/lib/imin_printer.dart +++ b/lib/imin_printer.dart @@ -706,4 +706,20 @@ class IminPrinter { Future setPrinterEncode(int encode) { return IminPrinterPlatform.instance.setPrinterEncode(encode); } + + /// print partial cut in your printer + /// + /// {@tool snippet} + /// + /// ```dart + /// iminPrinter.openLogs() + /// ``` + /// {@end-tool} + Future openLogs(int open) { + return IminPrinterPlatform.instance.openLogs(open); + } + + Future sendRAWDataHexStr(String hex) { + return IminPrinterPlatform.instance.sendRAWDataHexStr(hex); + } } diff --git a/lib/imin_printer_method_channel.dart b/lib/imin_printer_method_channel.dart index b3893b8..42f66a9 100644 --- a/lib/imin_printer_method_channel.dart +++ b/lib/imin_printer_method_channel.dart @@ -843,4 +843,16 @@ class MethodChannelIminPrinter extends IminPrinterPlatform { return await methodChannel .invokeMethod>('getPrinterPaperTypeList'); } + + @override + Future openLogs(int encode) async { + Map arguments = {"open": encode}; + await methodChannel.invokeMethod('setIsOpenLog', arguments); + } + + @override + Future sendRAWDataHexStr(String hex) async { + Map arguments = {"hex": hex}; + await methodChannel.invokeMethod('sendRAWDataHexStr', arguments); + } } diff --git a/lib/imin_printer_platform_interface.dart b/lib/imin_printer_platform_interface.dart index 224e01a..66aa9e0 100644 --- a/lib/imin_printer_platform_interface.dart +++ b/lib/imin_printer_platform_interface.dart @@ -407,4 +407,10 @@ abstract class IminPrinterPlatform extends PlatformInterface { Future setPrinterEncode(int encode) { throw UnimplementedError('setPrinterEncode() has not been implemented.'); } + Future openLogs(int encode) { + throw UnimplementedError('setPrinterEncode() has not been implemented.'); + } + Future sendRAWDataHexStr(String bytes) { + throw UnimplementedError('sendRAWData() has not been implemented.'); + } } diff --git a/test/imin_printer_test.dart b/test/imin_printer_test.dart index c38b83b..a55f5ae 100644 --- a/test/imin_printer_test.dart +++ b/test/imin_printer_test.dart @@ -215,6 +215,10 @@ class MockIminPrinterPlatform Future getPrinterSpeed() => Future.value(); @override Future?> getPrinterPaperTypeList() => Future.value(); + @override + Future openLogs(int encode) => Future.value(); + @override + Future?> sendRAWDataHexStr(String hex) => Future.value(); } void main() {