devla_sunmi 1.0.1 devla_sunmi: ^1.0.1 copied to clipboard
Support SUNMI T2.
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:devla_sunmi/flutter_sunmi_printer.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({Key key}) : super(key: key);
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Sunmi Printer',
theme: ThemeData(
primaryColor: Colors.black,
),
debugShowCheckedModeBanner: false,
home: const Home());
}
}
class Home extends StatefulWidget {
const Home({Key key}) : super(key: key);
@override
_HomeState createState() => _HomeState();
}
class _HomeState extends State<Home> {
PrinterStatus _printerStatus;
PrinterMode _printerMode;
@override
void initState() {
super.initState();
_bindingPrinter().then((bool isBind) async => {
if (isBind)
{
_getPrinterStatus(),
_printerMode = await _getPrinterMode(),
}
});
}
/// must binding ur printer at first init in app
Future<bool> _bindingPrinter() async {
final bool result = await SunmiPrinter.bindingPrinter();
return result;
}
/// you can get printer status
Future<void> _getPrinterStatus() async {
final PrinterStatus result = await SunmiPrinter.getPrinterStatus();
setState(() {
_printerStatus = result;
});
}
Future<PrinterMode> _getPrinterMode() async {
final PrinterMode mode = await SunmiPrinter.getPrinterMode();
return mode;
}
void printer() async {
await SunmiPrinter.startTransactionPrint();
await SunmiPrinter.printText('ໃບບິນ',
style: SunmiStyle(
align: SunmiPrintAlign.CENTER,
bold: true,
fontSize: SunmiFontSize.LG));
await SunmiPrinter.printText('Paymart payrich ສາຂາ ໜອງພະຍາ',
style: SunmiStyle(
align: SunmiPrintAlign.CENTER,
bold: true,
fontSize: SunmiFontSize.MD));
await SunmiPrinter.printText('( Vientiane, Xaisetthar, Meuang noy )',
style: SunmiStyle(
align: SunmiPrintAlign.CENTER,
));
await SunmiPrinter.printText('+85620 99935756',
style: SunmiStyle(
align: SunmiPrintAlign.CENTER,
));
await SunmiPrinter.line();
await SunmiPrinter.printText('ເລກບິນ: 1234567890');
await SunmiPrinter.printText('ວັນເວລາ: 01/01/2022 || 15:00:00');
await SunmiPrinter.printText('ຊຳລະໂດຍ: ເງິນສົດ');
await SunmiPrinter.printText('ເລກບິນ: 1234567890');
await SunmiPrinter.line();
await SunmiPrinter.printText('ລາຍການສິນຄ້າ',
style: SunmiStyle(
align: SunmiPrintAlign.CENTER,
bold: true,
fontSize: SunmiFontSize.MD));
await SunmiPrinter.printText('1. ເບຍລາວໃຫຍ່ 2 x 120,000 ');
await SunmiPrinter.printText('2. ເບຍລາວໃຫຍ່ 2 x 12,000,000 ');
await SunmiPrinter.printText('3. ເບຍລາວໃຫຍ່ 2 x 120,000,000 ');
await SunmiPrinter.printText('4. ເບຍລາວໃຫຍ່ 2 x 12,000 ');
await SunmiPrinter.printText('4. ເບຍລາວໃຫຍ່ 2 x 1,000 ');
await SunmiPrinter.line();
await SunmiPrinter.printText('ສະມາຊິກ',
style: SunmiStyle(
align: SunmiPrintAlign.CENTER,
bold: true,
fontSize: SunmiFontSize.MD));
await SunmiPrinter.printText('ຊື່: ພີນ');
await SunmiPrinter.printText('ເບີໂທ: 99999999');
await SunmiPrinter.printText('ຄະແນນກັບຄືນສູກະເປົາ: 2,000 ຄະແນນ');
await SunmiPrinter.printText('ຊື່: ພີນ');
await SunmiPrinter.printText('ຂໍຂອບໃຈ',
style: SunmiStyle(
align: SunmiPrintAlign.CENTER,
bold: true,
fontSize: SunmiFontSize.MD));
await SunmiPrinter.submitTransactionPrint();
await SunmiPrinter.exitTransactionPrint();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Pingspace Demo Printer'),
),
body: Column(
children: [
ElevatedButton(
onPressed: () => printer(), child: const Text('printer')),
],
));
}
}