Saltar al pie de página
USO DE IRONBARCODE

Cómo Generar Códigos QR en ASP.NET MVC

En el panorama digital acelerado de hoy en día, la generación de códigos QR se ha convertido en una herramienta esencial para compartir información de manera eficiente. Estos compactos códigos de barras bidimensionales, capaces de almacenar una amplia gama de datos, incluidos URLs, texto, información de contacto, detalles de productos y mucho más, desempeñan un papel fundamental en la comunicación moderna. Incorporar capacidades de generación de códigos QR en su aplicación ASP.NET MVC le permite empoderar a los usuarios generando códigos QR sin problemas y mejorando su experiencia, agilizando las interacciones y facilitando el intercambio de información sin esfuerzo.

Si está desarrollando una aplicación ASP.NET MVC y desea incorporar capacidades de generación de códigos QR, IronBarcode es una excelente biblioteca que simplifica el proceso. En este artículo, exploraremos cómo generar códigos QR en ASP.NET MVC utilizando la biblioteca Iron Barcode.

IronBarcode

IronBarcode es una potente biblioteca de generación y reconocimiento de códigos QR con muchas funciones para aplicaciones .NET. Con IronBarcode, los desarrolladores pueden integrar fácilmente la funcionalidad de códigos de barras y códigos QR en sus proyectos ASP.NET MVC, incluida la capacidad de generar códigos QR. La biblioteca proporciona un conjunto completo de herramientas y APIs que simplifican el proceso de creación y personalización de códigos QR, permitiendo a los desarrolladores adaptarlos a sus requerimientos específicos.

IronBarcode ofrece un amplio soporte para varios tipos de códigos de barras, incluidos los códigos QR, lo que lo convierte en una elección ideal para proyectos que requieren capacidades de generación de códigos QR. Proporciona a los desarrolladores la flexibilidad de especificar los datos a codificar, controlar el tamaño y la resolución de los códigos QR generados, e incluso añadir elementos de estilo visual como colores y logotipos. La biblioteca asegura una generación de códigos de barras de alta calidad con control preciso sobre cada aspecto de la apariencia del código QR.

Más allá de la generación de códigos QR, IronBarcode también incluye características robustas para la lectura y decodificación de códigos de barras. Soporta el escaneo y la extracción de datos de códigos QR, permitiendo que las aplicaciones procesen información codificada dentro de ellos. Esta funcionalidad es beneficiosa para escenarios donde el escaneo de códigos de barras y la extracción de datos son necesarios, como la gestión de inventarios, sistemas de boletos y aplicaciones móviles.

Ahora, creemos un proyecto para generar un código QR en la aplicación web ASP.NET Core MVC.

Configuración del proyecto

Antes de profundizar en los detalles de la implementación, asegurémonos de que su proyecto ASP.NET MVC esté configurado y listo para comenzar. Ya sea que esté comenzando un nuevo proyecto o trabajando con uno existente, los pasos que se describen a continuación le guiarán a través del proceso de integración de la biblioteca Iron Barcode en su aplicación. En mi caso, he creado un nuevo proyecto.

Los pasos para crear un nuevo proyecto son los siguientes:

  1. Abra Microsoft Visual Studio 2022.
  2. En la página de inicio, haga clic en "Crear un nuevo proyecto" o vaya a "Archivo" > "Nuevo" > "Proyecto" desde el menú superior.
  3. En la ventana "Crear un nuevo proyecto", verá diferentes plantillas de proyecto para elegir. Elija la plantilla de proyecto "Aplicación web ASP.NET Core (Modelo-vista-controlador)" y haga clic en "Siguiente".
  4. Ingrese un nombre y una ubicación para su proyecto. Elija una ubicación adecuada en su computadora para guardar los archivos del proyecto.
  5. Seleccione la versión de marco deseada. Visual Studio generalmente sugiere la última versión estable, pero puede elegir una diferente si es necesario. He elegido .NET 7.
  6. Personalice cualquier configuración adicional del proyecto, como opciones de autenticación o carpetas del proyecto, según sus requisitos.
  7. Haga clic en "Crear" para crear el proyecto.

Visual Studio generará los archivos del proyecto y abrirá el explorador de soluciones, donde podrá ver la estructura del proyecto y comenzar a trabajar en su código.

Cómo Generar Códigos QR en ASP.NET MVC: Figura 1

Ahora, necesitamos instalar la Biblioteca Iron Barcode en nuestra aplicación.

Instalar Iron Barcode

Para comenzar, abra la Consola del Administrador de Paquetes en Visual Studio y ejecute el siguiente comando:

Install-Package IronBarCode

Este comando instalará la biblioteca Iron Barcode y agregará las referencias necesarias a su proyecto.

Cómo Generar Códigos QR en ASP.NET MVC: Figura 2

Ahora, escribamos algo de código para crear códigos QR.

Crear QRCodeModel

Cree una clase de modelo dentro de la carpeta Models y escriba el siguiente código:

using System.ComponentModel.DataAnnotations;

public class QRCodeModel
{
    [Display(Name = "Enter QR Code Text")]
    public string QRCodeText { get; set; }
}
using System.ComponentModel.DataAnnotations;

public class QRCodeModel
{
    [Display(Name = "Enter QR Code Text")]
    public string QRCodeText { get; set; }
}
Imports System.ComponentModel.DataAnnotations

Public Class QRCodeModel
	<Display(Name := "Enter QR Code Text")>
	Public Property QRCodeText() As String
End Class
$vbLabelText   $csharpLabel

Crear controlador de código QR

En su proyecto ASP.NET MVC, cree un nuevo controlador llamado QrCodeController. Para hacer esto, haga clic derecho en la carpeta Controllers en la estructura de su proyecto, seleccione "Agregar" y luego elija "Controlador". De las opciones disponibles, seleccione "Controlador MVC - Vacío".

Escriba el siguiente código en QrCodeController:

using Microsoft.AspNetCore.Mvc;
using IronBarCode;
using System.IO;

public class QrCodeController : Controller
{
    private readonly IWebHostEnvironment _environment;

    public QrCodeController(IWebHostEnvironment environment)
    {
        _environment = environment;
    }

    public IActionResult CreateQRCode()
    {
        return View();
    }

    [HttpPost]
    public IActionResult CreateQRCode(QRCodeModel generateQRCode)
    {
        try
        {
            // Creating QR Code
            GeneratedBarcode barcode = QRCodeWriter.CreateQrCode(generateQRCode.QRCodeText);
            string path = Path.Combine(_environment.WebRootPath, "GeneratedQRCode");

            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }

            string filePath = Path.Combine(path, "qrcode.png");
            barcode.SaveAsPng(filePath);

            string fileName = Path.GetFileName(filePath);
            string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}/GeneratedQRCode/{fileName}";

            ViewBag.QrCodeUri = imageUrl;
        }
        catch (Exception ex)
        {
            // Handle exceptions
            // Log the exception details here for troubleshooting and debugging.
            throw;
        }

        return View();
    }
}
using Microsoft.AspNetCore.Mvc;
using IronBarCode;
using System.IO;

public class QrCodeController : Controller
{
    private readonly IWebHostEnvironment _environment;

    public QrCodeController(IWebHostEnvironment environment)
    {
        _environment = environment;
    }

    public IActionResult CreateQRCode()
    {
        return View();
    }

    [HttpPost]
    public IActionResult CreateQRCode(QRCodeModel generateQRCode)
    {
        try
        {
            // Creating QR Code
            GeneratedBarcode barcode = QRCodeWriter.CreateQrCode(generateQRCode.QRCodeText);
            string path = Path.Combine(_environment.WebRootPath, "GeneratedQRCode");

            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }

            string filePath = Path.Combine(path, "qrcode.png");
            barcode.SaveAsPng(filePath);

            string fileName = Path.GetFileName(filePath);
            string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}/GeneratedQRCode/{fileName}";

            ViewBag.QrCodeUri = imageUrl;
        }
        catch (Exception ex)
        {
            // Handle exceptions
            // Log the exception details here for troubleshooting and debugging.
            throw;
        }

        return View();
    }
}
Imports Microsoft.AspNetCore.Mvc
Imports IronBarCode
Imports System.IO

Public Class QrCodeController
	Inherits Controller

	Private ReadOnly _environment As IWebHostEnvironment

	Public Sub New(ByVal environment As IWebHostEnvironment)
		_environment = environment
	End Sub

	Public Function CreateQRCode() As IActionResult
		Return View()
	End Function

	<HttpPost>
	Public Function CreateQRCode(ByVal generateQRCode As QRCodeModel) As IActionResult
		Try
			' Creating QR Code
			Dim barcode As GeneratedBarcode = QRCodeWriter.CreateQrCode(generateQRCode.QRCodeText)
			Dim path As String = System.IO.Path.Combine(_environment.WebRootPath, "GeneratedQRCode")

			If Not Directory.Exists(path) Then
				Directory.CreateDirectory(path)
			End If

			Dim filePath As String = System.IO.Path.Combine(path, "qrcode.png")
			barcode.SaveAsPng(filePath)

			Dim fileName As String = System.IO.Path.GetFileName(filePath)
			Dim imageUrl As String = $"{Me.Request.Scheme}://{Me.Request.Host}{Me.Request.PathBase}/GeneratedQRCode/{fileName}"

			ViewBag.QrCodeUri = imageUrl
		Catch ex As Exception
			' Handle exceptions
			' Log the exception details here for troubleshooting and debugging.
			Throw
		End Try

		Return View()
	End Function
End Class
$vbLabelText   $csharpLabel

Este código configura un controlador que puede generar códigos QR. Cuando se llama a la acción CreateQRCode, toma el texto para el código QR, genera la imagen del código QR, la guarda y proporciona la URL de la imagen en la vista para su visualización. Más detalles son los siguientes:

  • El controlador tiene un constructor que toma un parámetro IWebHostEnvironment para acceder al entorno de alojamiento web.
  • La acción CreateQRCode devuelve una vista.
  • La acción CreateQRCode con el atributo [HttpPost] toma un parámetro QRCodeModel, que contiene el texto del código QR.
  • Dentro de la acción, se genera un código QR utilizando la clase QRCodeWriter de la biblioteca Iron Barcode.
  • El código QR generado se guarda como un archivo de imagen PNG en una carpeta llamada GeneratedQRCode en la ruta raíz de la web.
  • Si la carpeta GeneratedQRCode no existe, se crea.
  • Se generan la ruta del archivo y la URL para la imagen del código QR guardado.
  • La URL de la imagen del código QR se almacena en la propiedad ViewBag.QrCodeUri para ser utilizada en la vista.
  • Se capturan y registran las excepciones que ocurren durante el proceso.

Agregar vista CreateQRCode

Ahora, para agregar una nueva vista, haga clic derecho en el método de acción CreateQRCode en la clase QrCodeController. Seleccione "Agregar Vista", luego seleccione "Vista Razor" y haga clic en el botón "Agregar".

Cómo Generar Códigos QR en ASP.NET MVC: Figura 3

Aparecerá una nueva ventana como se muestra a continuación.

Cómo Generar Códigos QR en ASP.NET MVC: Figura 4

Escriba el nombre de la vista, seleccione la plantilla "Crear" y seleccione nuestra clase de modelo recién creada QRCodeModel. Haga clic en el botón Agregar. La vista se creará. Reemplace su vista con el código a continuación.

@model QRCodeModel

@{
    ViewData["Title"] = "CreateQRCode";
}

<h1>Create QRCode in ASP.NET MVC</h1>

<hr />
<div class="row">
    <div class="col-md-4">
        <form asp-action="CreateQRCode">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            <div class="form-group">
                <label asp-for="QRCodeText" class="control-label"></label>
                <input asp-for="QRCodeText" class="form-control" />
                <span asp-validation-for="QRCodeText" class="text-danger"></span>
            </div>
            <div class="form-group">
                <input type="submit" value="Create" class="btn btn-primary" />
            </div>
            <div class="form-group">
                @if (ViewBag.QrCodeUri != null)
                {
                    <img src="@ViewBag.QrCodeUri" class="img-thumbnail" alt="Generated QR Code" />
                }
            </div>
        </form>
    </div>
</div>

@section Scripts {
    @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); }
}

Ahora, avancemos a la clase Program.cs y cambiemos la ruta del controlador predeterminada.

app.MapControllerRoute(
    name: "default",
    pattern: "{controller=QrCode}/{action=CreateQRCode}/{id?}"
);
app.MapControllerRoute(
    name: "default",
    pattern: "{controller=QrCode}/{action=CreateQRCode}/{id?}"
);
app.MapControllerRoute(name:= "default", pattern:= "{controller=QrCode}/{action=CreateQRCode}/{id?}")
$vbLabelText   $csharpLabel

Esto cambiará la ruta predeterminada de HomeController a nuestro QrCodeController.

Ahora, compile y ejecute el proyecto.

Resultado

Cómo Generar Códigos QR en ASP.NET MVC: Figura 5

Ingrese texto en el cuadro de texto y haga clic en el botón crear. Se creará un código QR y se mostrará en la pantalla como se muestra a continuación.

Cómo Generar Códigos QR en ASP.NET MVC: Figura 6 - Código QR en ASP.NET

Ahora, añadamos estilo visual a nuestro código de barras añadiendo texto de anotación, valor del código QR y cambiando el color del código QR.

Agregar estilo visual al código QR

Agregue la siguiente línea de código dentro del método de acción CreateQRCode.

barcode.AddAnnotationTextAboveBarcode("QR Code Generated by Iron PDF");
barcode.AddBarcodeValueTextBelowBarcode();
barcode.ChangeBackgroundColor(System.Drawing.Color.White);
barcode.ChangeBarCodeColor(System.Drawing.Color.MediumVioletRed);
barcode.AddAnnotationTextAboveBarcode("QR Code Generated by Iron PDF");
barcode.AddBarcodeValueTextBelowBarcode();
barcode.ChangeBackgroundColor(System.Drawing.Color.White);
barcode.ChangeBarCodeColor(System.Drawing.Color.MediumVioletRed);
barcode.AddAnnotationTextAboveBarcode("QR Code Generated by Iron PDF")
barcode.AddBarcodeValueTextBelowBarcode()
barcode.ChangeBackgroundColor(System.Drawing.Color.White)
barcode.ChangeBarCodeColor(System.Drawing.Color.MediumVioletRed)
$vbLabelText   $csharpLabel

Ahora, ejecute el proyecto y genere el Código QR.

Cómo Generar Códigos QR en ASP.NET MVC: Figura 7 - Generar Código QR

Conclusión

En ASP.NET MVC, integrar IronBarcode es sencillo. Proporciona una interfaz fácil de usar, lo que facilita el trabajo con códigos QR. Al aprovechar IronBarcode, puede mejorar su aplicación al añadir la funcionalidad de códigos QR, permitiendo a los usuarios compartir y acceder a información de manera conveniente. IronBarcode es una biblioteca valiosa que simplifica el proceso de generación de códigos QR y la lectura de códigos QR en ASP.NET MVC. Empodera a los desarrolladores para crear aplicaciones dinámicas que utilizan el poder de los códigos QR para compartir y recuperar datos de manera eficiente.

Iron Barcode es gratuito para uso personal. Sin embargo, para fines comerciales, necesita comprar su licencia comercial, que viene con una prueba gratuita. También puede obtener un descuento significativo si adquiere la Iron Suite completa. Iron Suite es una colección completa de componentes de software .NET diseñados para simplificar tareas de desarrollo y mejorar la funcionalidad. Ofrece cinco potentes bibliotecas, incluyendo IronBarcode, IronOCR, IronPDF, IronXL y IronWebScraper que permiten a los desarrolladores trabajar con códigos de barras, reconocimiento óptico de caracteres, procesamiento de PDF, Excel y archivos CSV de manera fluida. Usted obtendrá los cinco productos por el precio de dos si opta por comprar la Iron Suite completa.

Preguntas Frecuentes

¿Cómo creo un código QR en ASP.NET MVC?

Puede crear un código QR en ASP.NET MVC configurando un proyecto en Visual Studio, instalando la biblioteca IronBarcode vía NuGet con el comando Install-Package IronBarCode, y utilizando las clases de IronBarcode para generar un código QR dentro de su controlador y mostrarlo en una vista.

¿Puedo personalizar la apariencia de los códigos QR en mi aplicación?

Sí, IronBarcode le permite personalizar los códigos QR ajustando el tamaño, la resolución, los colores y añadiendo logotipos o anotaciones, lo que puede mejorar el atractivo visual y la funcionalidad de sus códigos QR.

¿Cómo muestro un código QR en una vista de ASP.NET MVC?

Después de generar un código QR con IronBarcode, puede mostrarlo en una vista de ASP.NET MVC almacenando la URL de la imagen en el ViewBag y utilizando una etiqueta HTML <img> dentro de su vista Razor para renderizar la imagen del código QR.

¿Cómo puedo decodificar códigos QR con una aplicación .NET?

Puede decodificar códigos QR en una aplicación .NET usando IronBarcode, que proporciona funcionalidad para escanear y extraer datos de varios formatos de código de barras, incluidos los códigos QR, haciéndola adecuada para aplicaciones como gestión de inventarios y verificación de boletos.

¿Existe una versión gratuita de la biblioteca IronBarcode?

IronBarcode es gratuito para uso personal, lo que permite a los desarrolladores experimentar y probar sus características. Para uso comercial, se requiere una licencia, la cual se puede adquirir y viene con una prueba gratuita para evaluación.

¿Cuáles son algunas aplicaciones de los códigos QR en proyectos ASP.NET MVC?

Los códigos QR en proyectos ASP.NET MVC pueden utilizarse para acceso rápido a sitios web, pagos sin contacto, gestión de entradas, gestión de inventario e integración de aplicaciones móviles, mejorando la interacción del usuario y la difusión de información.

¿Cómo configuro un proyecto ASP.NET MVC para la generación de códigos QR?

Para configurar un proyecto ASP.NET MVC para la generación de códigos QR, utilice Visual Studio para crear una nueva aplicación web ASP.NET Core con la plantilla modelo-vista-controlador, luego instale la biblioteca IronBarcode para comenzar a generar códigos QR en su aplicación.

¿Qué bibliotecas están incluidas en el Iron Suite?

El Iron Suite incluye varias bibliotecas .NET como Iron Barcode, Iron OCR, Iron PDF, Iron XL e Iron Webscraper, cada una ofreciendo funcionalidades especializadas para tareas como generación de códigos de barras, reconocimiento óptico de caracteres, manipulación de PDF, procesamiento de Excel y scraping web.

Jordi Bardia
Ingeniero de Software
Jordi es más competente en Python, C# y C++. Cuando no está aprovechando sus habilidades en Iron Software, está programando juegos. Compartiendo responsabilidades para pruebas de productos, desarrollo de productos e investigación, Jordi agrega un valor inmenso a la mejora continua del producto. La experiencia variada lo mantiene ...
Leer más