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

  • Pregunta

  • Hola Foro de Microsoft

    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 o al señor Tuutini que conoce 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. En negrita está donde se produce el error en visual studio. Gracias.

    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;
               //genrar el código QR
                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;
            }
        }
    }

                        
    sábado, 13 de febrero de 2021 14:09

Respuestas

  • Buenas tardes

    Yo para codigos qr utilizo la libreria Zxing, puedo generar qr con muchos datos sin problemas.

    Mira este video a ver si lo solucionas

    https://www.youtube.com/watch?v=zA1exOQpCxY

    Saludos

    • Marcado como respuesta EricRRModerator martes, 23 de febrero de 2021 19:32
    miércoles, 17 de febrero de 2021 15:30

Todas las respuestas

  • Sospecho que puede ser que te estés pasando del máximo número de caracteres permitido por el código QR y por eso está dando un error. En esta página tienes una tabla con la capacidad que tiene cada QR dependiendo de su tamaño:

    https://www.keyence.com/ss/products/auto_id/barcode_lecture/basic_2d/qr/

    sábado, 13 de febrero de 2021 21:42
    Moderador
  • Hola,

    ¿Alguna novedad sobre la consulta realizada? ¿Haz podido lograr solucionar tu problema?

    Gracias por usar los foros de MSDN.

    Eric Ruiz

    ____________________________

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

    Si tiene algún cumplido o reclamo sobre el soporte de MSDN siéntase en la libertad de contactarMSDNFSF@microsoft.com.

    lunes, 15 de febrero de 2021 15:06
    Moderador
  • Buenas tardes

    Yo para codigos qr utilizo la libreria Zxing, puedo generar qr con muchos datos sin problemas.

    Mira este video a ver si lo solucionas

    https://www.youtube.com/watch?v=zA1exOQpCxY

    Saludos

    • Marcado como respuesta EricRRModerator martes, 23 de febrero de 2021 19:32
    miércoles, 17 de febrero de 2021 15:30