Exemplo n.º 1
0
        public void TestPrint()
        {
            BO23SlipModel testBO23 = new BO23SlipModel(
                "XXXXXX XXXXX",
                "XXXX",
                "XX-XXX-XXX",
                DateTime.Now.ToString("dd/MM/yyyy"),
                DateTime.Now.ToString("HH:mm:ss.fff"),
                99,
                "XX-XXXX",
                "XXXXXXXXXXX",
                888,
                777,
                "XXXXXXXXXXX");

            this.Print(testBO23);
        }
Exemplo n.º 2
0
        public void Print(BO23SlipModel bo23)
        {
            _printInfo = bo23;

            string logText;

            try
            {
                if (!_objAPI.IsValid)
                {
                    if (_objAPI.OpenMonPrinter(OpenType.TYPE_PRINTER, this.PRINTER_NAME) != ErrorCode.SUCCESS)
                    {
                        logText = "ผิดพลาด! ไม่สามารถเปิดตัวติดตามสถานะเครื่องพิมพ์ได้" + Environment.NewLine + printStatus.ToString();
                        log.AppendText(logText);
                        System.Diagnostics.Debug.WriteLine(logText);
                        return;
                    }
                }

                isFinish  = false;
                cancelErr = false;
                isTimeout = false;

                if (_objAPI.SetStatusBack() == ErrorCode.SUCCESS)
                {
                    using (PrintDocument pdPrint = new PrintDocument())
                    {
                        PrintController pc = new StandardPrintController();
                        pdPrint.PrintController = pc;

                        pdPrint.PrintPage += new PrintPageEventHandler(pdPrint_PrintPage);
                        pdPrint.PrinterSettings.PrinterName = this.PRINTER_NAME;

                        if (pdPrint.PrinterSettings.IsValid)
                        {
                            pdPrint.DocumentName = "SLIP";
                            pdPrint.Print();

                            Stopwatch sw = new Stopwatch();
                            sw.Start();
                            do
                            {
                                if (isFinish)
                                {
                                    _objAPI.CancelStatusBack();
                                }
                                if (sw.ElapsedMilliseconds > 5000)
                                {
                                    isFinish  = true;
                                    isTimeout = true;
                                }
                            } while (!isFinish);
                            sw.Stop();

                            if (isTimeout)
                            {
                                ForceResetPrinter();
                            }
                            else
                            {
                                LogStatusMessage();
                                //if ((printStatus & ASB.ASB_PAPER_END) == ASB.ASB_PAPER_END) CancelPrintJob();
                                if (cancelErr)
                                {
                                    _objAPI.CancelError();
                                }
                            }
                        }
                        else
                        {
                            logText = "ผิดพลาด! เครื่องพิมพ์ไม่เชื่อมต่อ";
                            log.AppendText(logText);
                            System.Diagnostics.Debug.WriteLine(logText);
                        }
                    }
                }
                else
                {
                    logText = "ผิดพลาด! ไม่สามารถตั้งฟังก์ชันเรียกกลับสถานะเครื่องพิมพ์";
                    log.AppendText(logText);
                    System.Diagnostics.Debug.WriteLine(logText);
                }
            }
            catch (Exception ex)
            {
                logText = ex.Message;
                log.AppendText(logText);
                System.Diagnostics.Debug.WriteLine(logText);
            }
        }