コード例 #1
0
        void _worker_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
        {
            try
            {
                List <object> genericlist = e.Argument as List <object>;

                var Lista  = (List <CodigosDat>)genericlist[0];
                var estilo = (string)genericlist[1];
                var bandI  = (bool)genericlist[2];

                BackgroundWorker worker = sender as BackgroundWorker;

                //
                foreach (var item in Lista)
                {
                    if (item.Estado.Equals("Generado") || bandI)
                    {
                        LocalReport rdlc = new LocalReport();

                        //rdlc.ReportPath = @"..\..\VentanasSec\ReportTicket.rdlc";
                        rdlc.ReportPath = @"C:\ReportTicket.rdlc";

                        Barcode b = new Barcode();

                        b.IncludeLabel  = true;
                        b.Alignment     = AlignmentPositions.CENTER;
                        b.LabelFont     = new Font(System.Drawing.FontFamily.GenericMonospace, 20 * Barcode.DotsPerPointAt96Dpi, System.Drawing.FontStyle.Regular, GraphicsUnit.Pixel);
                        b.LabelPosition = LabelPositions.BOTTOMCENTER;

                        var img = b.Encode(TYPE.CODE128, item.codigoBarra.Trim(), System.Drawing.Color.Black, System.Drawing.Color.White, 290, 90);

                        List <resultTicket> T = new List <resultTicket>();

                        using (MemoryStream ms = new MemoryStream())
                        {
                            img.Save(ms, ImageFormat.Png);

                            var objnewImg = new resultTicket
                            {
                                POrder      = item.POrder,
                                Size        = item.Size,
                                Estilo      = estilo,
                                Cantidad    = item.Cantidad,
                                codigoBarra = item.codigoBarra,
                                Img         = ms.ToArray()
                            };

                            T.Add(objnewImg);

                            ms.Dispose();
                        }


                        rdlc.DataSources.Add(new ReportDataSource("DataSet2", T));

                        using (ImprimirTicket imp = new ImprimirTicket())
                        {
                            imp.Imprime(rdlc);
                        }

                        Task.Run(() => { return(ActualizarEstado(item.codigoBarra)); });
                    }
                }



                #region codigo funcional dejado en comentario debido a que bartender no se puede instalar en algunas maquinas

                /*  var lb = @"D:\ticketUni.btw";
                 * using (Engine engine = new Engine(true))
                 * {
                 *    engine.Start();
                 *
                 *    foreach (var item in Lista)
                 *    {
                 *        if (item.Estado.Equals("Generado") || bandI)
                 *        {
                 *
                 *            LabelFormatDocument btformate = engine.Documents.Open(lb);
                 *            btformate.SubStrings["lblcorte"].Value = item.POrder.Trim();
                 *            btformate.SubStrings["lbltalla"].Value = item.Size.TrimEnd();
                 *            btformate.SubStrings["lblcodigo"].Value = item.codigoBarra.TrimEnd();
                 *            btformate.SubStrings["lblestilo"].Value = estilo.TrimEnd();
                 *            btformate.SubStrings["lblcantidad"].Value = item.Cantidad.ToString();
                 *
                 *            var resp = btformate.Print();
                 *
                 *
                 *
                 *            Task.Run(() => { return ActualizarEstado(item.codigoBarra); });
                 *        }
                 *    }
                 *
                 *
                 *    //engine.Start();
                 *    //  btformate.PrinterCodeTemplate.Performance.AllowSerialization = false;
                 *    // btformate.ExportImageToClipboard(Seagull.BarTender.Print.ColorDepth.ColorDepth256, new Resolution(200));
                 *    //  btformat.Close(BarTender.BtSaveOptions.btDoNotSaveChanges);
                 *    engine.Stop();
                 * } */
                #endregion
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                //  throw;
            }
        }