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); } } } }
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); }