• 0

كيف أطبع فاتورة order على Java؟

لدي تطبيق لمحل حلويات على لغة Java، وأريد طباعة فواتير order مثل المرفقة في الصورة:

imprimante_ticket_thermique-60.jpg

الطابعة من النوع الحراري.

كيف ذلك؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 2

قمت ببرمجة برنامج صغير للطباعة للطابعات الحرارية لمطعم، فكرة البرنامج ببساطة أن المطعم يشتغل بمنظومة Openbravo POS تقوم المنظومة بطباعة إيصال الطلبية كاملة وهذا يعطى للزبون، صاحب المطعم يريد أيضا أن يتم طباعة كل طلبية من مجموعة من الأكل على حده وتعطى للطباخين، فقمت ببرمجة البرنامج ليطبع إيصالات الطلبيات هذه، طبعا هو يحتاج لتعديل منك ليتلائم معك، ولتشغيله ضع الملف في مشروعك مع ملفات الجافا الأخرى

وفي الدالة main ضع السطرين التاليين لتتم الطباعة:

Print printer = new Print();

 printer.print();

 

البرنامج يجلب البيانات من mysql عليك تعديله وربما لا تحتاج قاعدة بيانات، المهم أن البيانات التي سيتم طباعتها هي مخزنة في مصفوفة نصية  String[]

أتمنى أن أكون أفدتك

Print.java

image.png

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

من الأشياء التي يجهلها البعض أن هذه الطابعات لا تتوفر على مداد، فهي تعتمد على تقنية الكتابة على الورقة باستخدام تقنية الحرارة، وتنتشر مثل هذه الماكينتات داخل المقاهي ومحلالت الأكلات السريعة، حيث تعطي الفاتورة محتوية المحتويات، مع إظهار المجموع في ذيل الورقة.

بالاضافة إلى ما قدمه خليل، أرفق كود مصدري لتطبيق يطبع بطابعة حرارية.

الكود كالتالي:

public class printnow {


  public static void printCard(final String bill ){
final PrinterJob job = PrinterJob.getPrinterJob();


Printable contentToPrint = new Printable(){
   @Override
   public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {


       Graphics2D g2d = (Graphics2D) graphics;

    g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY());
    g2d.setFont(new Font("Monospaced", Font.BOLD, 7));


       if (pageIndex >0){return NO_SUCH_PAGE;} //Only one page

      String Bill [] = bill.split(";");

      int y = 0;
    for (int i = 0; i < Bill.length; i++) {

        g2d.drawString(Bill[i], 0, y);
        y = y + 15;
    }

    return PAGE_EXISTS;

   }


}; 

        PageFormat pageFormat = new PageFormat();
    pageFormat.setOrientation(PageFormat.PORTRAIT);
      Paper pPaper = pageFormat.getPaper();



   pPaper.setImageableArea(0, 0, pPaper.getWidth() , pPaper.getHeight() -2);
   pageFormat.setPaper(pPaper);

   job.setPrintable(contentToPrint, pageFormat);





    try {
      job.print();

  } catch (PrinterException e) {
    System.err.println(e.getMessage());
  }
    }
    }

الكود من شأنه أن يطبع ورقة واحدة فقط، ويبقى لك مهمة تغيير المحتوى المطبوع حسب الحاجة.

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن