Пример #1
0
 private void ImprimeEtiqueta(Bartender.LabelFormatDocument Etiqueta)
 {
     if (Etiqueta != null)
     {
         lock (BartenderEngine) {
             Bartender.Messages messages;
             //int waitForCompletionTimeout = 10000; // 10 segundos
             Bartender.Result result         = Etiqueta.Print("PesajeWpf", out messages);
             string           messagesString = "Mensajes: ";
             foreach (Bartender.Message msg in messages)
             {
                 messagesString += "\n" + msg.Text;
             }
             if (result == Bartender.Result.Failure)
             {
                 // Error en la impresión
                 string msg = "Error al imprimir:" + Environment.NewLine + string.Join(Environment.NewLine, messages.Select(m => m.Text).ToList());
                 MessageBox.Show(msg, "Error Bartender", MessageBoxButton.OK, MessageBoxImage.Exclamation);
             }
         }
     }
 }
Пример #2
0
        private void ImprimeEtiquetaWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            List <string> lstMensajes = new List <string>();

            Bartender.Messages messages = null;

            if (e.Argument != null)
            {
                // A la función se le puede enviar una sola etiqueta o un listado. Comprobar el tipo del argumento
                List <Bartender.LabelFormatDocument> lstEtiquetas = new List <Bartender.LabelFormatDocument>();
                if (e.Argument.GetType() == typeof(Bartender.LabelFormatDocument))
                {
                    lstEtiquetas.Add((Bartender.LabelFormatDocument)e.Argument);
                }
                else
                {
                    lstEtiquetas = (List <Bartender.LabelFormatDocument>)e.Argument;
                }

                lock (BartenderEngine) {
                    foreach (Bartender.LabelFormatDocument Etiqueta in lstEtiquetas)
                    {
                        Bartender.Result result         = Etiqueta.Print("PesajeWpf", out messages);
                        string           messagesString = "Mensajes: ";
                        foreach (Bartender.Message msg in messages)
                        {
                            messagesString += "\n" + msg.Text;
                        }
                        if (result == Bartender.Result.Failure)
                        {
                            // Error en la impresión
                            lstMensajes.AddRange(messages.Select(m => m.Text).ToList());
                        }
                    }
                }
            }

            ImprimeEtiquetaWorker.ReportProgress(100, lstMensajes);
        }