Пример #1
0
 private List <PrinterSetting> BuildGeneralSettingList(PrinterStatusInfo printerStatusInfo)
 {
     return(new List <PrinterSetting> {
         new PrinterSetting("Status", printerStatusInfo.Status),
         new PrinterSetting("Jobs Pending", printerStatusInfo.JobsPending),
         new PrinterSetting("Jobs Active", printerStatusInfo.JobsActive),
         new PrinterSetting("Jobs Complete", printerStatusInfo.JobsComplete),
         new PrinterSetting("Job Errors", printerStatusInfo.JobErrors),
         new PrinterSetting("Jobs Cancelled", printerStatusInfo.JobsCancelled),
         new PrinterSetting("Jobs Total", printerStatusInfo.JobsTotal),
         new PrinterSetting("Next Job ID", printerStatusInfo.NextJobId),
         new PrinterSetting("Alarm Info", printerStatusInfo.AlarmInfo.Value != 0 ? printerStatusInfo.AlarmInfo.Value + ":" + printerStatusInfo.AlarmInfo.Description : "None"),
         new PrinterSetting("Error Info", printerStatusInfo.ErrorInfo.Value != 0 ? printerStatusInfo.ErrorInfo.Value + ":" + printerStatusInfo.ErrorInfo.Description : "None")
     });
 }
Пример #2
0
        // Print an order
        public static async Task Print(this Order order)
        {
            Printer printer = null;

            try
            {
                printer           = new Printer(Series.TM_T82, ModelLang.Ank);
                printer.Received += Printer_Received;
                printer.Buffer(order);
                // Connect to printer through wifi
                // Find printer from MAC address
                await printer.ConnectAsync("TCP:64:EB:8C:2C:5B:4F", Printer.PARAM_DEFAULT);

                await printer.BeginTransactionAsync();

                // Send data to the printer
                PrinterStatusInfo status = await printer.GetStatusAsync();

                if (status.Connection == Connection.True && status.Online == Online.True)
                {
                    await printer.SendDataAsync(Printer.PARAM_DEFAULT);
                }
                // Haven't figure out issue:
                // If not delayed an ERR_PROCESSING is caught
                await Task.Delay(1500);

                //
                await printer.EndTransactionAsync();

                await printer.DisconnectAsync();
            }
            catch (Exception ex)
            {
                foreach (PropertyInfo prop in typeof(ErrorStatus).GetProperties())
                {
                    if ((int)prop.GetValue(null) == ex.HResult)
                    {
                        throw new Exception(prop.Name);
                    }
                }
                throw new Exception(ex.Message);
            }

            printer.ClearCommandBuffer();
            printer.Received -= Printer_Received;
            printer           = null;
        }
Пример #3
0
        /// <summary>
        /// Determines if a printer is in alarm state
        /// </summary>
        /// <param name="descr">description of the alarm</param>
        /// <returns>true if printer is in alarm state</returns>
        public bool IsAlarmHandling(out string descr)
        {
            bool isAlarm = false;

            descr = string.Empty;

            try {
                PrinterStatusInfo psi = printer.GetPrinterStatus();
                if (psi.Status.Equals("alarm_handling"))
                {
                    descr   = psi.AlarmInfo.Description;
                    isAlarm = true;
                }
            } catch {
                isAlarm = true;
            }
            return(isAlarm);
        }
        private void PrintTemplate(string selectedTemplate)
        {
            ZebraCardPrinter zebraCardPrinter = null;

            try {
                int quantity = 0;
                Application.Current.Dispatcher.Invoke(() => {
                    quantity = int.Parse(Quantity_ComboBox.Text);
                });

                connection.Open();
                zebraCardPrinter = ZebraCardPrinterFactory.GetInstance(connection);

                PrinterStatusInfo statusInfo = zebraCardPrinter.GetPrinterStatus();
                if (statusInfo.ErrorInfo.Value > 0)
                {
                    throw new ZebraCardException($"{statusInfo.Status} ({statusInfo.ErrorInfo.Description}). Please correct the issue and try again.");
                }
                else if (statusInfo.AlarmInfo.Value > 0)
                {
                    throw new ZebraCardException($"{statusInfo.Status} ({statusInfo.AlarmInfo.Description}). Please correct the issue and try again.");
                }
                else
                {
                    ZebraCardTemplate zebraCardTemplate = new ZebraCardTemplate(zebraCardPrinter);
                    zebraCardTemplate.SetTemplateFileDirectory(Properties.Settings.Default.TemplateFileDirectory);
                    zebraCardTemplate.SetTemplateImageDirectory(Properties.Settings.Default.TemplateImageDirectory);

                    Dictionary <string, string> templateData = GetTemplateData();
                    TemplateJob templateJob = zebraCardTemplate.GenerateTemplateJob(selectedTemplate + ".xml", templateData);
                    int         jobId       = zebraCardPrinter.PrintTemplate(quantity, templateJob);
                }
            } catch (Exception error) {
                MessageBoxHelper.ShowError(error.Message);
            } finally {
                ConnectionHelper.CleanUpQuietly(zebraCardPrinter, connection);
            }
        }