Saltar al contenido

Generación de código QR en ASP.NET MVC

Posteriormente a observar en diversos repositorios y páginas webs de internet finalmente nos encontramos con la resolución que te enseñamos ahora.

Solución:

Escribí un método de ayuda HTML básico para emitir el correcto

etiqueta para aprovechar la API de Google. Entonces, en su página (suponiendo que el motor de vista ASPX) use algo como esto:

<%: Html.QRCodeImage(Request.Url.AbsolutePath) %>
<%: Html.QRCodeImage("Meagre human needs a phone to read QR codes. Ha ha ha.") %>

O si desea especificar el tamaño en píxeles (la imagen siempre es cuadrada):

<%: Html.QRCodeImage(Request.Url.AbsolutePath, size: 92) %>

Aquí está el código:

public static class QRCodeHtmlHelper

    /// 
    /// Produces the markup for an image element that displays a QR Code image, as provided by Google's chart API.
    /// 
    /// 
    /// The data to be encoded, as a string.
    /// The square length of the resulting image, in pixels.
    /// The width of the border that surrounds the image, measured in rows (not pixels).
    /// The amount of error correction to build into the image.  Higher error correction comes at the expense of reduced space for data.
    /// Optional HTML attributes to include on the image element.
    /// 
    public static MvcHtmlString QRCode(this HtmlHelper htmlHelper, string data, int size = 80, int margin = 4, QRCodeErrorCorrectionLevel errorCorrectionLevel = QRCodeErrorCorrectionLevel.Low, object htmlAttributes = null)
    3&chs=0x0&chl=1", size, HttpUtility.UrlEncode(data), errorCorrectionLevel.ToString()[0], margin);

        var tag = new TagBuilder("img");
        if (htmlAttributes != null)
            tag.MergeAttributes(new RouteValueDictionary(htmlAttributes));
        tag.Attributes.Add("src", url);
        tag.Attributes.Add("width", size.ToString());
        tag.Attributes.Add("height", size.ToString());

        return new MvcHtmlString(tag.ToString(TagRenderMode.SelfClosing));
    


public enum QRCodeErrorCorrectionLevel

    /// Recovers from up to 7% erroneous data.
    Low,
    /// Recovers from up to 15% erroneous data.
    Medium,
    /// Recovers from up to 25% erroneous data.
    QuiteGood,
    /// Recovers from up to 30% erroneous data.
    High

Una opción es usar la API de Google Chart Server para hacerlo.

Por ejemplo, aquí está el código QR para esta misma página…

No se requiere código 🙂

Hay más detalles en la documentación vinculada, pero comienza con una URL de https://chart.googleapis.com/chart?, luego agrega parámetros de consulta de:

  • cht=qr: Especifica que quieres un código QR
  • chs=Talla: Especifique el tamaño, por ejemplo 200x200
  • chl=datos: Especifique los datos, por ejemplo, una URL

Hay otros parámetros de consulta para la codificación de salida y la corrección de errores.

Una búsqueda rápida arroja muchas bibliotecas de QRCode (todas ellas comerciales excepto la primera):

  • http://www.twit88.com/platform/projects/show/mt-qrcode (anteriormente aquí)
  • http://www.barcodelib.com/net_barcode/barcode_symbologies/qrcode.html
  • http://www.businessrefinery.com/products/barcode_net/barcodes/net-qr-code.html
  • http://www.componentsource.com/products/dbarcode-net-qr-code/index.html
  • http://www.onbarcode.com/products/net_barcode/barcodes/qrcode.html

Te invitamos a añadir valor a nuestra información cooperando tu experiencia en las críticas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *