C sharp - Generar Código Qr a través de una codificación en Base 64

 
Vista:

Generar Código Qr a través de una codificación en Base 64

Publicado por Pablo Daniel Almada (2 intervenciones) el 13/02/2021 15:26:40
Hola Foro de La web del programador

Mi pregunta s la siguiente con la librería ThoughtWorks.QRCode.Codec. Esta liberia me genera el codigo QR hasta cierta longituda de cadena, pero cuando la cadena es más larga como muestro en el ejemplo de abajo me produce el error: indice fuera de los limites de la matriz.

Ejemplo de la cadena: {"ver":1,"fecha":"2020-10-13","cuit":30000000007,"ptoVta":10,"tipoCmp":1,"nroCmp":94,"importe":12100,"moneda":"DOL","ctz":65,"tipoDocRec":80,"nroDocRec":20000000001,"tipoCodAut":"E","codAut":70417054367476}

Código de la cadena del ejemplo en base 64 en la cual se realiza la conversion a código qr: eyJ2ZXIiOjEsImZlY2hhIjoiMjAyMC0xMC0xMyIsImN1aXQiOjMwMDAwMDAwMDA3LCJwdG9WdGEiOjEwLCJ0aXBvQ21wIjoxLCJucm9DbXAiOjk0LCJpbXBvcnRlIjoxMjEwMCwibW9uZWRhIjoiRE9MIiwiY3R6Ijo2NSwidGlwb0RvY1JlYyI6ODAsIm5yb0RvY1JlYyI6MjAwMDAwMDAwMDEsInRpcG9Db2RBdXQiOiJFIiwiY29kQXV0Ijo3MDQxNzA1NDM2NzQ3Nn0=

Aclaración: Cuando la longitud de la cadena es menor al de ejemplo, mas o menos a la mitad o un poco más, me realiza bien la generación del códgo GR, pero con la longitud del ejemplo ya no.

Señores del foro que conocen mucho del tema si me pueden ayudar a encontrar una solución a esta error. Se que me puede decir que busque otra librería , pero necesito hacerla en esta libreria porque luego este código se unirá a un proyecto donde tambien se usa esta librería.

A continuación dejo el código. Aclaro en lineas de comentarios donde se produce el error en visual studio. Gracias.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Drawing;
using System.Drawing.Imaging;
using ThoughtWorks.QRCode.Codec;
 
namespace Generar_Codigo_QR_Lib_QRCode
{
    public class QRCode
    {
        public Bitmap generarqr(string cadena, string ruta)
        {
            QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
            Image img;
            Bitmap bmp;
            //conversor de cadena en byte
            byte[] Byte = System.Text.Encoding.UTF8.GetBytes(cadena);
            //conversor de byte a base 64
            string cadenaBase64 = Convert.ToBase64String(Byte);
            //definir la escala del código QE
            qrCodeEncoder.QRCodeScale = 3;
           //generar el código QR. En esta linea se produce el error
            img = qrCodeEncoder.Encode(cadenaBase64); 
            //crear una instancia de tipo Bitmap
            bmp = new Bitmap(img);
            //Guardar la ímágen QR resultante en una ruta específica
            bmp.Save(@ruta + "\\" + "imagenqr.png");
            return bmp;
        }
    }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder