اذهب إلى المحتوى

السؤال

Recommended Posts

  • 2
نشر

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

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

Print printer = new Print();

 printer.print();

 

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

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

Print.java

image.png

  • 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());
  }
    }
    }

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

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...