شرح كامل لطباعة الفواتير باستخدام أجهزة Sunmi Flutter
تُعد طباعة الفواتير من أهم المزايا في تطبيقات نقاط البيع (POS)، خاصة عند استخدام أجهزة Sunmi التي تأتي بطابعات حرارية مدمجة. توفر مكتبة sunmi_printer_plus حلاً متكاملاً لمطوري Flutter للتعامل مع هذه الطابعات بسهولة، حيث تسمح بطباعة النصوص، الصور، الباركود، QR Code، وحتى التحكم في درج الكاشير.
في هذا المقال سنتعرف على كيفية استخدام مكتبة sunmi_printer_plus لطباعة الفواتير الاحترافية داخل تطبيق Flutter خطوة بخطوة.
ما هي مكتبة sunmi_printer_plus؟
تسمح هذه المكتبة للمطورين بتنفيذ العديد من العمليات مثل:
– طباعة النصوص مع التحكم بالحجم والمحاذاة – طباعة الصور – إنشاء وطباعة الباركود – إنشاء وطباعة QR Code – فتح درج الكاشير – قطع الورق تلقائيًا بعد الطباعة
تثبيت المكتبة
dependencies:
sunmi_printer_plus: ^4.1.0
flutter pub get
فتح درج الكاشير تلقائيًا
await SunmiDrawer.openDrawer();
يفضل تنفيذ هذا الكود في نهاية عملية الطباعة لتحسين تجربة المستخدم وتقليل وقت الانتظار.
طباعة صورة من الإنترنت
Uint8List assetImage = (await NetworkAssetBundle(
Uri.parse("https://www.img.png")
).load("https://www.img.png")).buffer.asUint8List();
await SunmiPrinter.printImage(
assetImage,
align: SunmiPrintAlign.CENTER,
);
طباعة نص
await SunmiPrinter.printText(
'فاتورة ضريبية مبسطة',
style: SunmiTextStyle(
bold: true,
fontSize: 45,
align: SunmiPrintAlign.CENTER,
),
);
إضافة مسافة فارغة
SunmiPrinter.lineWrap(10);
إنشاء خط فاصل داخل الفاتورة
await SunmiPrinter.printText(
"." * 40,
style: SunmiTextStyle(
bold: true,
fontSize: 25,
align: SunmiPrintAlign.CENTER,
),
);
طباعة الباركود
await SunmiPrinter.printBarCode(
model.data.referenceNo,
style: SunmiBarcodeStyle(
align: SunmiPrintAlign.CENTER,
textPos: SunmiBarcodeTextPos.TEXT_UNDER,
size: 3,
height: 80,
),
);
طباعة QR Code
await SunmiPrinter.printQRCode(
model.data.referenceNo,
style: SunmiQrcodeStyle(
align: SunmiPrintAlign.CENTER,
qrcodeSize: 10,
),
);
طباعة عناصر الفاتورة في صف واحد
await printProducts(model.data.products);
Future<void> printProducts(List<Item> products) async {
for (var product in products) {
await SunmiPrinter.printRow(cols: [
SunmiColumn(
text: product.total.toString(),
width: 12,
style: SunmiTextStyle(
fontSize: 30,
bold: true,
align: SunmiPrintAlign.LEFT,
),
),
SunmiColumn(
text: product.price.toString(),
width: 12,
style: SunmiTextStyle(
bold: true,
fontSize: 30,
align: SunmiPrintAlign.RIGHT,
),
),
SunmiColumn(
text: product.quantity.toString(),
width: 6,
style: SunmiTextStyle(
bold: true,
fontSize: 30,
align: SunmiPrintAlign.RIGHT,
),
),
SunmiColumn(
text: product.productName,
width: 6,
style: SunmiTextStyle(
bold: true,
fontSize: 30,
align: SunmiPrintAlign.RIGHT,
),
),
]);
}
}
قطع الورقة بعد الانتهاء من الطباعة
await SunmiPrinter.cutPaper();
الخلاصة
باستخدام هذه المكتبة يمكنك بسهولة:
– طباعة النصوص والصور – إنشاء الباركود و QR Code – تنظيم عناصر الفاتورة – فتح درج الكاشير – قطع الورق تلقائيًا
كل ذلك يساعدك على بناء نظام نقاط بيع احترافي داخل تطبيق Flutter بسهولة وكفاءة عالية.
لمزيد من المقالات يمكنك مشاهده شرح طباعة فاتوره للمتاجر من خلال Flutter عن طريق البلوتوث



