Ejemplo n.º 1
0
        private void btnPrint_Click(object sender, EventArgs e)
        {
            String statusMessage = "";
            int    errorCode     = 0;
            int    resultCode    = LabelConst.CLS_SUCCESS;
            int    type          = (int)connectType.SelectedValue;

            if (lstPrinters.SelectedItems.Count <= 0)
            {
                MessageBox.Show("No printer is selected.", "Error");
                return;
            }

            LabelPrinter printer = new LabelPrinter();



            resultCode = printer.Connect(type, lstPrinters.Items[0].Text);
            printer.SetLog(1, "C:\\Users\\bukha\\Desktop\\Logs", 10);

            if (resultCode != LabelConst.CLS_SUCCESS)
            {
                this.PrinterErrorProc(printer, eErrorKind.eErrConnect, resultCode, null);
                return;
            }

            resultCode = printer.PrinterCheck();
            if (resultCode != LabelConst.CLS_SUCCESS)
            {
                this.PrinterErrorProc(printer, eErrorKind.eErrPrinterCheck, resultCode, null);
                printer.Disconnect();
                return;
            }

            statusMessage = "";

            this.CheckPrinterStatus(printer, ref errorCode, ref statusMessage);

            if (errorCode != 0)
            {
                this.PrinterErrorProc(printer, eErrorKind.eErrPrinterStatus, 0, statusMessage);
                printer.Disconnect();
                return;
            }

            printer.SetMeasurementUnit(LabelConst.CLS_UNIT_INCH);
            LabelDesign design = new LabelDesign();

            this.DesignLabel(design);

            resultCode = printer.Print(design, 3);

            if (resultCode != LabelConst.CLS_SUCCESS)
            {
                this.PrinterErrorProc(printer, eErrorKind.eErrPrint, resultCode, null);
                printer.Disconnect();
                return;
            }
            System.Threading.Thread.Sleep(500);

            while (true)
            {
                resultCode = printer.PrinterCheck();
                if (resultCode != LabelConst.CLS_SUCCESS)
                {
                    this.PrinterErrorProc(printer, eErrorKind.eErrPrinterCheck, resultCode, null);
                    printer.Disconnect();
                    return;
                }
                if (printer.GetPrinting() == 0 & printer.GetBatchProcessing() == 0)
                {
                    break;
                }
            }

            statusMessage = "";
            this.CheckPrinterStatus(printer, ref errorCode, ref statusMessage);
            if (errorCode != 0)
            {
                this.PrinterErrorProc(printer, eErrorKind.eErrPrinterStatus, 0, statusMessage);
            }
            else
            {
                MessageBox.Show("Success", "Print Result");
            }
        }