public ActionResult PrintTicket(int codVenT)
        {
            Session["EntregaBusca"] = null;
            Session["imagen"] = null;
            /*
                    if (generarBoleta(codVenT))
                    {
                        //Se imprimio :)

                    }

            */

            List<Entrada> listaEntradas = new List<Entrada>();
            CultureInfo culture = new CultureInfo("es-PE");
            var lista = from obj in db.DetalleVenta
                        where obj.codVen == codVenT
                        select obj;

            foreach (var detalle in lista)
            {
                int? cant = detalle.cantEntradas;
                var axf = db.AsientosXFuncion.Where(c => c.codDetalleVenta == detalle.codDetalleVenta && c.codFuncion == detalle.codFuncion);
                if (axf != null && axf.Count() != 0)
                {
                    foreach (var dato in axf)
                    {
                        Entrada ticket = new Entrada();

                        var fu = db.Funcion.Find(detalle.codFuncion);
                        var evento = db.Eventos.Find(fu.codEvento);
                        if (evento.idLocal.HasValue)
                        {

                            var local = db.Local.Find(evento.idLocal);
                            ticket.Local = local.descripcion;
                            ticket.Direccion = local.ubicacion;
                        }
                        else
                        {
                            ticket.Direccion = evento.direccion;

                        }

                        var pe = db.PrecioEvento.Find(detalle.codPrecE);
                        var zona = db.ZonaEvento.Find(pe.codZonaEvento);

                        ticket.Lugar = evento.Region.nombre;
                        ticket.Evento = evento.nombre;

                        ticket.Precio = pe.precio;
                        ticket.Fecha = fu.fecha.Value.ToString("dddd d # MMMM # yyyy", culture).Replace("#", "de");

                        ticket.Zona = zona.nombre;
                        ticket.Hora = fu.horaIni.Value.ToString("hh:mm tt", culture);
                        var asiento = db.Asientos.Find(dato.codAsiento);
                        ticket.Asiento = "Fil: " + asiento.fila + " Col: " + asiento.columna;
                        ticket.Codigo = "" + evento.codigo + "" + fu.codFuncion + "" + codVenT + "" + cant;

                        var funcion = db.VentasXFuncion.Where(c => c.codVen == codVenT && c.codFuncion == fu.codFuncion);

                        if (funcion != null && funcion.Count() > 0)
                        {

                            funcion.First().hanEntregado = true;

                        }

                        listaEntradas.Add(ticket);
                    }
                }
                else
                {
                    for (int i = 0; i < cant; i++)
                    {
                        Entrada ticket = new Entrada();

                        var fu = db.Funcion.Find(detalle.codFuncion);
                        var evento = db.Eventos.Find(fu.codEvento);

                        if (evento.idLocal.HasValue)
                        {

                            var local = db.Local.Find(evento.idLocal);
                            ticket.Local = local.descripcion;
                            ticket.Direccion = local.ubicacion;
                        }
                        else
                        {
                            ticket.Direccion = evento.direccion;

                        }

                        var pe = db.PrecioEvento.Find(detalle.codPrecE);
                        var zona = db.ZonaEvento.Find(pe.codZonaEvento);

                        ticket.Lugar = evento.Region.nombre;
                        ticket.Evento = evento.nombre;
                        ticket.codEvento = evento.codigo;

                        ticket.Precio = pe.precio;
                        ticket.Fecha = fu.fecha.Value.ToString("dddd d # MMMM # yyyy", culture).Replace("#", "de") + " " + fu.horaIni.Value.ToString("hh:mm tt", culture);

                        ticket.Zona = zona.nombre;

                        ticket.Codigo = "" + evento.codigo + "" + fu.codFuncion + "" + codVenT + "" + cant;

                        var funcion = db.VentasXFuncion.Where(c => c.codVen == codVenT && c.codFuncion == fu.codFuncion);

                        if (funcion != null && funcion.Count() > 0)
                        {

                            funcion.First().hanEntregado = true;

                        }
                        listaEntradas.Add(ticket);
                    }
                }
            }

            db.SaveChanges();
            var data = listaEntradas.First();

            var st = "";
            this.ViewData.Model = data;
            string path = HttpContext.Server.MapPath("~/Images/imagen.png");

            path = path.Replace('\\', '/');
            Session["path"] = path;
            using (StringWriter stringWriter = new StringWriter())
            {
                ViewEngineResult viewResult = ViewEngines.Engines.FindView(this.ControllerContext, "GeneraTicket", null);
                ViewContext viewContext = new ViewContext(this.ControllerContext, viewResult.View, this.ViewData, this.TempData, stringWriter);
                viewResult.View.Render(viewContext, stringWriter);
                st = stringWriter.GetStringBuilder().ToString();
            }

            var converter = new NReco.ImageGenerator.HtmlToImageConverter();
            converter.Width = 710;
            var jpegBytes = converter.GenerateImage(st, ImageFormat.Png);

            try
            {

                List<String> printers = new List<string>();
                string name;

                for (int i = 0; PrinterSettings.InstalledPrinters.Count > i; i++)
                {
                    name = PrinterSettings.InstalledPrinters[i];
                    printers.Add(name);

                }

                PrintDocument pd = new PrintDocument();
                Stream stream = new MemoryStream(jpegBytes);
                string def = pd.PrinterSettings.PrinterName;
                pd.PrinterSettings.PrinterName = printers.Where(c => c.Contains("redireccionado")).First();

                pd.PrintPage += (sender, args) =>
                {

                    Image i = Image.FromStream(stream);
                    Rectangle m = new Rectangle(0, 0, 700, 250);

                    args.Graphics.DrawImage(i, m);

                };
                pd.Print();

            }
            catch(Exception ex)
            {

            }

            Session["imagen"] = jpegBytes;
            return View(data);
        }