private void BatchPrintWorker_DoWork(object sender, DoWorkEventArgs args)
        {
            String fileName = String.Empty;

            BatchPrintArgs e = (BatchPrintArgs)args.Argument;

            switch (e.ReprintStage)
            {
            case REPRINT_STAGE.F1:
                if (e.Model.Contains("Dummy"))
                {
                    fileName = "DummyF1.prn";
                }
                else
                {
                    fileName = "F1.prn";
                }
                for (int i = e.SerialNo; i <= e.Quantity; i++)
                {
                    PrinterManager.PrintBarcode("F1Printer", e.Model, e.Code, e.Date, i.ToString("D4"),
                                                PrinterManager.TemplatePath + fileName);
                }


                break;

            case REPRINT_STAGE.M1:
                if (e.Model.Contains("Dummy"))
                {
                    fileName = "DummyM1.prn";
                }
                else
                {
                    fileName = "M1.prn";
                }
                for (int i = e.SerialNo; i <= e.Quantity; i++)
                {
                    PrinterManager.PrintBarcode("M1Printer", e.Model, e.Code + "A", e.Date, i.ToString("D4"),
                                                PrinterManager.TemplatePath + fileName);
                }

                break;

            case REPRINT_STAGE.INTEGRATED:
                if (e.Model.Contains("Dummy"))
                {
                    fileName = "DummyIntegrated.prn";
                }
                else
                {
                    fileName = "Integrated.prn";
                }
                for (int i = e.SerialNo; i <= e.Quantity; i++)
                {
                    PrinterManager.PrintBarcode("F2Printer", e.Model, e.Code, e.Date, i.ToString("D4"),
                                                PrinterManager.TemplatePath + fileName);
                }

                break;

            case REPRINT_STAGE.COMBINATION:
                for (int i = e.SerialNo; i <= e.Quantity; i++)
                {
                    foreach (Model m in Models)
                    {
                        if (m.Code == e.Code)
                        {
                            if (m.Name.Contains("Dummy"))
                            {
                                PrinterManager.PrintCombSticker(m, e.Code + e.Date + i.ToString("D4"),
                                                                PrinterManager.TemplatePath + m.Name + ".prn");
                            }
                            else
                            {
                                PrinterManager.PrintCombSticker(m, e.Code + e.Date + i.ToString("D4"));
                            }
                            break;
                        }
                    }
                }

                break;

            default:
                break;
            }
        }
        void r_BatchPrint(object sender, BatchPrintArgs e)
        {
            String fileName = String.Empty;

            BatchPrintWorker         = new BackgroundWorker();
            BatchPrintWorker.DoWork += BatchPrintWorker_DoWork;
            BatchPrintWorker.WorkerSupportsCancellation = true;

            // DoWorkEventArgs BatchPrintArgs = new DoWorkEventArgs(e);

            BatchPrintWorker.RunWorkerAsync(e);

            /*
             * switch (e.ReprintStage)
             * {
             *  case REPRINT_STAGE.F1:
             *      if (e.Model.Contains("Dummy"))
             *      {
             *          fileName = "DummyF1.prn";
             *      }
             *      else fileName = "F1.prn";
             *      for (int i = e.SerialNo; i <= e.Quantity; i++)
             *      {
             *          PrinterManager.PrintBarcode("F1Printer", e.Model, e.Code, e.Date, i.ToString("D4"),
             *              PrinterManager.TemplatePath+fileName);
             *
             *      }
             *
             *
             *      break;
             *  case REPRINT_STAGE.M1:
             *      if( e.Model.Contains("Dummy"))
             *      {
             *          fileName = "DummyM1.prn";
             *      }
             *      else fileName = "M1.prn";
             *      for (int i = e.SerialNo; i <= e.Quantity; i++)
             *      {
             *
             *          PrinterManager.PrintBarcode("M1Printer", e.Model, e.Code + "A", e.Date, i.ToString("D4"),
             *              PrinterManager.TemplatePath+fileName);
             *
             *      }
             *
             *      break;
             *  case REPRINT_STAGE.INTEGRATED:
             *      if (e.Model.Contains("Dummy"))
             *      {
             *          fileName = "DummyIntegrated.prn";
             *      }
             *      else fileName = "Integrated.prn";
             *      for (int i = e.SerialNo; i <= e.Quantity; i++)
             *      {
             *          PrinterManager.PrintBarcode("F2Printer", e.Model, e.Code, e.Date, i.ToString("D4"),
             *              PrinterManager.TemplatePath+fileName);
             *
             *      }
             *
             *      break;
             *  case REPRINT_STAGE.COMBINATION:
             *      for (int i = e.SerialNo; i <= e.Quantity; i++)
             *      {
             *          foreach (Model m in Models)
             *          {
             *              if (m.Code == e.Code)
             *              {
             *                  if (m.Name.Contains("Dummy"))
             *                  {
             *                      PrinterManager.PrintCombSticker(m, e.Code + e.Date + i.ToString("D4"),
             *                          PrinterManager.TemplatePath+ m.Name + ".prn");
             *                  }
             *                  else
             *                  PrinterManager.PrintCombSticker(m, e.Code + e.Date + i.ToString("D4"));
             *                  break;
             *              }
             *          }
             *
             *      }
             *
             *      break;
             *  default:
             *      break;
             * }
             */
        }