Exemple #1
0
        public static byte[] generateHTML(string uuid, string pathStyle, ApplicationDbContext _context, IWebHostEnvironment _environment)
        {
            CFDIDatos datos = new CFDIDatos();

            datos = _context.CFDIs.FirstOrDefault(d => d.CfdUUID == uuid);

            var XSLpath = Path.Combine(_environment.WebRootPath, pathStyle);
            //var XSLpath = Path.Combine(_environment.WebRootPath, "images", "CFDI33_Pagos_Nomina.xsl");
            var XMLpath = Path.Combine(_environment.WebRootPath, "images", uuid + ".xml");

            using (FileStream fs = System.IO.File.Create(XMLpath))
            {
                fs.Write(datos.CfdXml, 0, datos.CfdXml.Length);
            }

            string resultname         = "CFDI-" + uuid + ".html";
            var    result             = Path.Combine(_environment.WebRootPath, "images", resultname);
            XslCompiledTransform xslt = new XslCompiledTransform();

            xslt.Load(XSLpath);
            xslt.Transform(XMLpath, result);

            byte[] buffer = null;
            using (FileStream fs = new FileStream(result, FileMode.Open, FileAccess.Read))
            {
                buffer = new byte[fs.Length];
                fs.Read(buffer, 0, (int)fs.Length);
            }
            return(buffer);
        }
        public FileResult GetXMLFile(string uuid)
        {
            CFDIDatos datos      = new CFDIDatos();
            string    resultname = "CFDI-" + uuid + ".xml";

            datos = _context.CFDIs.FirstOrDefault(d => d.CfdUUID == uuid);
            return(new FileContentResult(datos.CfdXml, "text/xml"));
            //return File(datos.CfdXml, "text/xml", uuid.TrimStart().TrimEnd() + ".xml"); //esto si funciona..
        }
Exemple #3
0
        public static byte[] generatePDF(string uuid, string pathStyle, ApplicationDbContext _context, IWebHostEnvironment _environment)
        {
            List <string> rutasDelete = new List <string>();
            CFDIDatos     datos       = new CFDIDatos();

            datos = _context.CFDIs.FirstOrDefault(d => d.CfdUUID == uuid);

            var XSLpath = Path.Combine(_environment.WebRootPath, pathStyle);
            //var XSLpath = Path.Combine(_environment.WebRootPath, "images", "CFDI33_Pagos_Nomina.xsl");
            var XMLpath = Path.Combine(_environment.WebRootPath, "temp", uuid + ".xml");//eliminar

            rutasDelete.Add(XMLpath);

            using (FileStream fs = System.IO.File.Create(XMLpath))
            {
                fs.Write(datos.CfdXml, 0, datos.CfdXml.Length);
            }

            var    pathPDF            = Path.Combine(_environment.WebRootPath, "temp", "CFDI-" + uuid + ".pdf"); //eliminar
            string resultname         = "CFDI-" + uuid + ".html";
            var    result             = Path.Combine(_environment.WebRootPath, "temp", resultname);              //eliminar
            XslCompiledTransform xslt = new XslCompiledTransform();

            xslt.Load(XSLpath);
            xslt.Transform(XMLpath, result);

            rutasDelete.Add(result);

            byte[] buffer = null;
            using (FileStream fs = new FileStream(result, FileMode.Open, FileAccess.Read))
            {
                buffer = new byte[fs.Length];
                fs.Read(buffer, 0, (int)fs.Length);
            }
            string contenido  = System.IO.File.ReadAllText(result);
            var    textReader = new StringReader(contenido);

            // instantiate the html to pdf converter
            HtmlToPdf converter = new HtmlToPdf();

            // convert the url to pdf
            SelectPdf.PdfDocument doc = converter.ConvertHtmlString(contenido);
            byte[] pdf = null;
            // save pdf document
            doc.Save(pathPDF);
            // close pdf document
            doc.Close();

            using (FileStream documentStream = new FileStream(pathPDF, FileMode.Open, FileAccess.Read))
            {
                pdf = new byte[documentStream.Length];
                documentStream.Read(pdf, 0, (int)documentStream.Length);
            }
            return(pdf);
        }
        public IActionResult Zip(string ids, string algo = "")
        {
            Paramaters    paramaters = new Paramaters(_context);
            string        pathStyle  = paramaters.getEmpParam(simplifile.Services.ParamsKeys.E18, "", "");
            List <string> lista      = new List <string>();
            var           separados  = ids.Split(',');

            lista = separados.ToList();
            List <FileBasic> sourceFiles = new List <FileBasic>();

            List <CFDIDatos> datos = new List <CFDIDatos>();

            foreach (var uuid in lista)
            {
                CFDIDatos dato = _context.CFDIs.FirstOrDefault(d => d.CfdUUID == uuid);
                if (dato != null && dato.CfdXml != null)
                {
                    datos.Add(dato);
                }
            }
            //los adjunto como xml
            string extension = "xml";

            foreach (var item in datos)
            {
                sourceFiles.Add(new FileBasic
                {
                    FileStream = item.CfdXml,
                    filename   = item.CfdUUID,
                    extension  = extension
                });
            }
            //los adjunto como pdf...
            extension = "pdf";
            foreach (var item in datos)
            {
                sourceFiles.Add(new FileBasic
                {
                    FileStream = FilesTransform.generatePDF(item.CfdUUID, pathStyle, _context, _environment),
                    filename   = item.CfdUUID,
                    extension  = extension
                });
            }
            string password = Guid.NewGuid().ToString("d").Substring(1, 6);
            var    response = FilesTransform.GetZIPStream(sourceFiles, password);

            SendPasswordEmail(User.Identity.Name, User.Identity.Name, password);
            return(File(response, "application/zip", DateTime.Now.ToShortDateString() + ".zip"));
        }
        public IActionResult XMLZip(string ids, string algo = "")
        {
            List <string> lista     = new List <string>();
            var           separados = ids.Split(',');

            lista = separados.ToList();
            List <FileBasic> sourceFiles = new List <FileBasic>();

            List <CFDIDatos> datos = new List <CFDIDatos>();

            foreach (var uuid in lista)
            {
                CFDIDatos dato = _context.CFDIs.FirstOrDefault(d => d.CfdUUID == uuid);
                if (dato != null && dato.CfdXml != null)
                {
                    datos.Add(dato);
                }
            }

            string extension = "xml";

            foreach (var item in datos)
            {
                sourceFiles.Add(new FileBasic
                {
                    FileStream = item.CfdXml,
                    filename   = item.CfdUUID,
                    extension  = extension
                });
            }
            string password = Guid.NewGuid().ToString("d").Substring(1, 6);

            byte[] fileBytes2 = FilesTransform.GetZIPStream(sourceFiles, password);
            SendPasswordEmail(User.Identity.Name, User.Identity.Name, password);
            return(File(fileBytes2, "application/zip", "Archivos.zip"));
        }