示例#1
0
        /// <summary>
        /// Ejemplo de creación de un pdf de factura TicketBai.
        /// </summary>
        private void CrearFacturaPdfTicketBai()
        {
            // Creamos y preparamos un documento de ejemplo
            Documento documento = CrearDocumentoEjemplo();

            // Creo un objeto TicketBai para obtener el código indentificativo y el CRC8
            var ticketBai = TicketBaiFactory.GetTicketBai(documento);


            // Firmo el ticketBai
            var xmlParser = new XmlParser();

            var signer = new TicketBai.Xades.Signer.TicketBaiSigner(new CanonicalizationMethodDsigC14N(),
                                                                    new DigestMethodSHA512(), new SHA256Managed());

            var xml = xmlParser.GetString(ticketBai, new Dictionary <string, string>()
            {
                { "T", "urn:ticketbai:emision" },
            });

            signer.Load(xml);

            var certificado = CargaCertificado();

            signer.Sign(certificado);

            // obtener el código indentificativo y el CRC8
            documento.CodigoIdentificativo  = $"{signer.TicketBaiSigned.CodigoIdentificativo}";
            documento.CodigoDetecionErrores = signer.TicketBaiSigned.CodigoIdentificativo.ControlCRC8;

            // Texto html de plantilla de factura
            var plantillaFacturaHtml          = Resources.factura;
            RenderizadorHtml renderizadorHtml = new RenderizadorHtml(documento,
                                                                     plantillaFacturaHtml);
            // Texto html completado con los datos del documento
            var facturaHtml = renderizadorHtml.Renderiza();

            // Mediante el texto html obtenemos el pdf de factura
            var pdfManager = new PdfManager();
            var facturaPdf = pdfManager.GetPdfFormHtml(facturaHtml, "",
                                                       (byte[])Resources.seguiemj);

            // Guardamos el pdf
            var pdfPath = $"{Parametros.Actual.ParametrosAlmacen.RutaArchivosTemporales}TicketBai.pdf";

            File.WriteAllBytes(pdfPath, facturaPdf);

            wBr.Navigate(pdfPath);
        }