Пример #1
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);
        }