예제 #1
0
        private void button1_Click(object sender, EventArgs e)
        {
            if (textBoxId.Text != "")
            {
                Value1 = textBoxId.Text;
                ZebraCardPrinter zebraCardPrinter = null;
                Connection       connection       = null;
                String           usbAdress        = null;
                try
                {
                    foreach (DiscoveredPrinter usbPrinter in UsbDiscoverer.GetZebraUsbPrinters(new ZebraCardPrinterFilter()))
                    {
                        usbAdress = usbPrinter.Address;
                    }
                    connection = new UsbConnection(usbAdress);
                    connection.Open();

                    zebraCardPrinter = ZebraCardPrinterFactory.GetInstance(connection);
                    ZebraTemplate zebraCardTemplate = new ZebraCardTemplate(zebraCardPrinter);
                    //string templateData = GetTemplateData();
                    List <string> templateFields          = zebraCardTemplate.GetTemplateDataFields(Template);
                    Dictionary <string, string> fieldData = PopulateTemplateFieldData(templateFields);

                    // Generate template job
                    TemplateJob templateJob = zebraCardTemplate.GenerateTemplateDataJob(Template, fieldData);

                    // Send job
                    int jobId = zebraCardPrinter.PrintTemplate(1, templateJob);

                    // Poll job status
                    JobStatusInfo jobStatus = PollJobStatus(jobId, zebraCardPrinter);
                    //labelStatus.Text = "Impression OK";
                    //Console.WriteLine($"Job {jobId} completed with status '{jobStatus.PrintStatus}'.");
                }
                catch (Exception ev)
                {
                    labelStatus.Text = "Erreur d'impression : " + ev.Message;
                    //Console.WriteLine($"Error printing template: {ev.Message}");
                }
                finally
                {
                    CloseQuietly(connection, zebraCardPrinter);
                }
            }
            else
            {
                MessageBox.Show("Pas de valeur");
            }
        }
        private List <String> GetTemplateVariables(string selectedTemplate)
        {
            List <string>    templateVariables = null;
            ZebraCardPrinter zebraCardPrinter  = null;

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

                ZebraCardTemplate zebraCardTemplate = new ZebraCardTemplate(zebraCardPrinter);
                zebraCardTemplate.SetTemplateFileDirectory(Properties.Settings.Default.TemplateFileDirectory);

                templateVariables = zebraCardTemplate.GetTemplateFields(selectedTemplate + ".xml");
            } catch (Exception error) {
                errorMessage = $"Connection Error: {error.Message}";
            } finally {
                ConnectionHelper.CleanUpQuietly(zebraCardPrinter, connection);
            }
            return(templateVariables);
        }
        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);
            }
        }