شارك المقالة
دليل احترافي لطباعة الفواتير باستخدام أجهزة Sunmi Flutter (فتح الكاشير + باركود + QR)

دليل احترافي لطباعة الفواتير باستخدام أجهزة Sunmi Flutter (فتح الكاشير + باركود + QR)

شرح كامل لطباعة الفواتير باستخدام أجهزة Sunmi Flutter


تُعد طباعة الفواتير من أهم المزايا في تطبيقات نقاط البيع (POS)، خاصة عند استخدام أجهزة Sunmi التي تأتي بطابعات حرارية مدمجة. توفر مكتبة sunmi_printer_plus حلاً متكاملاً لمطوري Flutter للتعامل مع هذه الطابعات بسهولة، حيث تسمح بطباعة النصوص، الصور، الباركود، QR Code، وحتى التحكم في درج الكاشير.

في هذا المقال سنتعرف على كيفية استخدام مكتبة sunmi_printer_plus لطباعة الفواتير الاحترافية داخل تطبيق Flutter خطوة بخطوة.

ما هي مكتبة sunmi_printer_plus؟

مكتبة sunmi_printer_plus هي مكتبة Flutter مخصصة للتعامل مع أجهزة Sunmi المزودة بطابعات حرارية.

تسمح هذه المكتبة للمطورين بتنفيذ العديد من العمليات مثل:
– طباعة النصوص مع التحكم بالحجم والمحاذاة – طباعة الصور – إنشاء وطباعة الباركود – إنشاء وطباعة QR Code – فتح درج الكاشير – قطع الورق تلقائيًا بعد الطباعة

تثبيت المكتبة

يمكنك تثبيت المكتبة من pub.dev عبر إضافة التالي داخل ملف pubspec.yaml:

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

يمكن استخدام 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();

الخلاصة

توفر مكتبة sunmi_printer_plus حلاً متكاملاً لطباعة الفواتير داخل تطبيقات Flutter على أجهزة Sunmi.

باستخدام هذه المكتبة يمكنك بسهولة:
– طباعة النصوص والصور – إنشاء الباركود و QR Code – تنظيم عناصر الفاتورة – فتح درج الكاشير – قطع الورق تلقائيًا

كل ذلك يساعدك على بناء نظام نقاط بيع احترافي داخل تطبيق Flutter بسهولة وكفاءة عالية.


لمزيد من المقالات يمكنك مشاهده شرح طباعة فاتوره للمتاجر من خلال Flutter عن طريق البلوتوث
شاهد أيضًا
مقالات ذات صلة
كيفية إضافة Field لادخال البيانات في Apis داخل Android Studio

  كيفية إضافة Field لادخال البيانات في Apis داخل Android Studioالتعامل مع الApis من اهم…

كيفية إنشاء تطبيقات سطح المكتب الاحترافية باستخدام PyQt5 في Python

شرح مكتبة PyQt5 في بايثون لانشاء برامج سطح المكتبمرحبا بكم في شرح مكتبة PyQt5 وهي…

شرح تحميل وتثبيت برنامج swi prolog والتعامل معه | How to download a swi prolog program

  تعتبر لغة برولوج prolog واحده من اللغات الغير معروفه بشكل كبير في الوطن العربي…

🚫 مانع الإعلانات مفعل

يجب إيقاف مانع الإعلانات لاستكمال تصفح الموقع