예제 #1
0
        private byte[] GetQrCodeArray(ReporteDocumentoFactura obj, string ruc)
        {
            var docs       = obj.Documento.Split('-');
            var listParams = new List <string>
            {
                ruc,                              // RUC Emisor
                obj.TipoDocumento.ToString("00"), // Tipo Comp
                docs[0],
                docs[1],
                obj.Igv.ToString("0.00"),
                obj.Total.ToString("0.00"),
                obj.FechaRegistro.ToShortDateString(),
                obj.TipoDocCliente.ToString("00"),
                obj.NroDocCliente
            };
            var qrGen  = new CodeQrBarcodeDraw();
            var metric = (BarcodeMetricsQr)qrGen.GetDefaultMetrics(30);

            metric.ErrorCorrection = QrErrorCorrection.Q;
            var qr = new CodeQrBarcodeDraw().Draw(string.Join("|", listParams) + "|", metric);

            using (var mem = new MemoryStream())
            {
                qr.Save(mem, System.Drawing.Imaging.ImageFormat.Png);
                return(mem.ToArray());
            }
        }