printText method
Implementation
@override
Future<void> printText(String text, {IminTextStyle? style}) async {
// 确保 _sdkVersion 已缓存
if (_sdkVersion == null) {
await getSdkVersion();
}
Map<String, dynamic> arguments = <String, dynamic>{};
if (style != null) {
arguments.putIfAbsent('text', () => text);
if (_is2xSdk) {
// 2.0 设备带 style 时自动走 printTextBitmap 路径(位图方式)
// 因为 2.0 的 printText 是 ESC/POS 指令,不认 setTextSize 等位图参数
if (style.fontSize != null) {
await setTextBitmapSize(style.fontSize!);
}
if (style.typeface != null) {
await setTextBitmapTypeface(style.typeface!);
}
if (style.fontStyle != null) {
await setTextBitmapStyle(style.fontStyle!);
}
if (style.align != null) {
Map<String, dynamic> bitmapArgs = <String, dynamic>{
'text': text,
'align': style.align!.index,
};
await methodChannel.invokeMethod<void>(
'printTextBitmapWithAli', bitmapArgs);
} else {
await methodChannel.invokeMethod<void>('printTextBitmap', arguments);
}
// 重置位图样式
if (style.typeface != null) {
await setTextBitmapTypeface(IminTypeface.typefaceDefault);
}
if (style.fontStyle != null) {
await setTextBitmapStyle(IminFontStyle.normal);
}
return;
}
// 1.0 设备走原有逻辑
if (style.align != null) {
await setAlignment(style.align!);
}
if (style.width != null) {
await setTextWidth(style.width!);
}
if (style.fontSize != null) {
await setTextSize(style.fontSize!);
}
if (style.typeface != null) {
await setTextTypeface(style.typeface!);
}
if (style.fontStyle != null) {
await setTextStyle(style.fontStyle!);
}
} else {
arguments.putIfAbsent('text', () => text);
}
await methodChannel.invokeMethod<void>('printText', arguments);
if (style != null) {
if (style.align != null) {
await setAlignment(IminPrintAlign.left);
}
if (style.typeface != null) {
await setTextTypeface(IminTypeface.typefaceDefault);
}
if (style.fontStyle != null) {
await setTextStyle(IminFontStyle.normal);
}
}
}