شارك المقالة
دليل احترافي لطباعة الفواتير باستخدام أجهزة 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 عن طريق البلوتوث
شاهد أيضًا
مقالات ذات صلة
إنشاء عروض الأشجار التفاعلية باستخدام fancy tree view في Flutter

إنشاء عروض الأشجار التفاعلية باستخدام fancy_tree_view في Flutterتُبسط مكتبة flutter_fancy_tree_view إنشاء عروض الأشجار التفاعلية (المعروفة…

كيفية طباعة الرقم الاكبر بين رقمين باستخدام لغة برولوج | print the largest number prolog code

  لغة prolog واحده من اكثر لغات البرمجة المعقدة و code برولوج ليس من الاكواد…

شرح كيفية عمل animations على النصوص في flutter

شرح كيفية عمل animations على النصوص في flutter في هذه المقالة نقدم لكم شرح لكيفية…

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

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