Saltar al pie de página
USO DE IRONBARCODE

Cómo Generar y Mostrar Dinámicamente Códigos de Barras en ASP.NET MVC

ASP.NET MVC es un popular marco de desarrollo web que permite a los desarrolladores crear aplicaciones web robustas y dinámicas. Un requisito común en las aplicaciones web es la capacidad de generar y mostrar imágenes de código de barras. Las imágenes de código de barras se utilizan para representar datos en un formato legible por máquina y pueden ser leídas por un escáner de códigos de barras.

La generación dinámica y muestra de imágenes de códigos de barras en ASP.NET MVC se puede lograr usando la biblioteca de C# líder del mercado, IronBarcode. Esta biblioteca proporciona APIs que permiten a los desarrolladores generar fácilmente imágenes de código de barras en varias plataformas en diferentes formatos como Code 39, Code 128 y QR Code. Sin depender de System.Drawing.Common y la API de gráficos de .NET, que son específicos de Windows desde .NET 6, IronBarcode permite funcionalidades multiplataforma y permite más compatibilidad de origen.

IronBarcode

IronBarcode es una popular biblioteca de .NET para códigos de barras que ofrece una amplia gama de características para crear, leer y manipular imágenes de códigos de barras en aplicaciones .NET. La biblioteca es desarrollada y mantenida por Iron Software, una empresa de desarrollo de software que se especializa en componentes y bibliotecas de .NET. IronBarcode proporciona soporte para una amplia gama de formatos de códigos de barras, incluyendo Code 128, Code 39, QR Code, Data Matrix y PDF417. La biblioteca también ofrece características para generar códigos de barras con dimensiones personalizadas, colores y fuentes, y para agregar texto y logotipos a las imágenes de códigos de barras.

Además de la generación de códigos de barras, IronBarcode también incluye características para leer y decodificar imágenes de códigos de barras. La biblioteca puede leer y decodificar códigos de barras desde imágenes, documentos PDF y flujos de cámara en vivo. Soporta tanto formatos de código de barras 1D como 2D y puede incluso reconocer códigos de barras que están parcialmente ocultos o dañados.

Requisitos previos

Antes de trabajar con IronBarcode en una aplicación .NET, hay algunos requisitos previos que deben satisfacerse.

  1. .NET Framework o .NET Core: IronBarcode está diseñado para trabajar con ambos, .NET Framework y .NET Core. Asegúrese de que su entorno de desarrollo tenga instalada la versión adecuada de .NET.
  2. Visual Studio: IronBarcode puede integrarse con Visual Studio para facilitar el desarrollo y las pruebas. Se pueden usar las ediciones Visual Studio Community, Professional o Enterprise. Se puede descargar del sitio web de Visual Studio.
  3. Biblioteca IronBarcode: Descargue e instale la biblioteca IronBarcode desde el sitio web de Iron Software o a través del administrador de paquetes NuGet. La biblioteca se puede instalar usando la consola del administrador de paquetes NuGet ejecutando el siguiente comando: Install-Package BarCode.

IronBarcode es gratuito para desarrollo pero debe ser licenciado para fines comerciales y de implementación. Puedes probar la prueba gratuita para probar toda su funcionalidad.

Creación de un nuevo proyecto ASP.NET MVC

Abra Visual Studio y haga clic en Crear un nuevo proyecto.

Cómo generar y mostrar dinámicamente un código de barras en ASP.NET MVC: Figura 1

En la nueva ventana, busque y seleccione "ASP.NET MVC (Web App) Model View Controller" y haga clic en el botón Siguiente.

Cómo generar y mostrar dinámicamente un código de barras en ASP.NET MVC: Figura 2

Ingrese el nombre del nuevo proyecto y su ubicación y haga clic en Siguiente.

Cómo generar y mostrar dinámicamente un código de barras en ASP.NET MVC: Figura 3

Seleccione la versión de .NET que desea usar y deje todas las otras opciones tal como están y haga clic en Crear.

Cómo generar y mostrar dinámicamente un código de barras en ASP.NET MVC: Figura 4

Se ha creado un proyecto .NET.

Cómo generar y mostrar dinámicamente un código de barras en ASP.NET MVC: Figura 5

Instalar IronBarcode

1. Uso del Administrador de paquetes NuGet

Esta opción está disponible dentro de Visual Studio e instalará el paquete IronBarcode directamente en su solución. Vaya a herramientas y haga clic en Administrador de paquetes NuGet como se muestra.

Cómo generar y mostrar dinámicamente un código de barras en ASP.NET MVC: Figura 6

Busque la biblioteca IronBarcode usando el cuadro de búsqueda en el Administrador de paquetes NuGet. Seleccione la opción IronBarcode de la lista de paquetes disponibles.

Cómo generar y mostrar dinámicamente un código de barras en ASP.NET MVC: Figura 7

2. Uso de la línea de comandos de Visual Studio

En el menú de Visual Studio, vaya a Herramientas > Administrador de paquetes NuGet > Consola de administrador de paquetes.

Cómo generar y mostrar dinámicamente un código de barras en ASP.NET MVC: Figura 8

Ingrese la siguiente línea en la pestaña de la consola del administrador de paquetes: Install-Package BarCode.

El paquete se descargará/instalará en el proyecto actual y estará listo para su uso.

Cómo generar y mostrar dinámicamente un código de barras en ASP.NET MVC: Figura 9

Generación y visualización de imágenes de códigos de barras con IronBarcode

Ahora que nuestro entorno está configurado, podemos comenzar a escribir el código para generar una imagen de código de barras en ASP.NET MVC dinámicamente.

Primero, cree una clase en la carpeta de modelos llamada GenerateBarcodeModel.cs

using System.ComponentModel.DataAnnotations;

namespace GenerateBarcodeMVCCore6_Demo.Models
{
    public class GenerateBarcodeModel
    {
        [Display(Name = "Enter Barcode Text")]
        public string Barcode { get; set; }
    }
}
using System.ComponentModel.DataAnnotations;

namespace GenerateBarcodeMVCCore6_Demo.Models
{
    public class GenerateBarcodeModel
    {
        [Display(Name = "Enter Barcode Text")]
        public string Barcode { get; set; }
    }
}
Imports System.ComponentModel.DataAnnotations

Namespace GenerateBarcodeMVCCore6_Demo.Models
	Public Class GenerateBarcodeModel
		<Display(Name := "Enter Barcode Text")>
		Public Property Barcode() As String
	End Class
End Namespace
$vbLabelText   $csharpLabel

Cree una carpeta llamada "GeneratedBarcode" en la carpeta wwwroot para almacenar las imágenes de códigos de barras generadas.

Cómo generar y mostrar dinámicamente un código de barras en ASP.NET MVC: Figura 10

Agregue el siguiente método de acción en su clase HomeController.cs en la carpeta "controllers".

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

namespace YourNamespace.Controllers
{
    public class HomeController : Controller
    {
        private readonly IWebHostEnvironment _environment;

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

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

        // Handling POST operation inside this Action method
        [HttpPost]
        public IActionResult CreateBarcode(GenerateBarcodeModel generateBarcode)
        {
            try
            {
                // Create a barcode using the input text
                GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(generateBarcode.Barcode, BarcodeWriterEncoding.Code128);

                // Adding annotation text to barcode
                barcode.AddBarcodeValueTextBelowBarcode();

                // Styling the Barcode
                barcode.ResizeTo(400, 120);
                barcode.ChangeBarCodeColor(Color.Red);
                barcode.SetMargins(10);

                // Define path to save the barcode image
                string path = Path.Combine(_environment.WebRootPath, "GeneratedBarcode");
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }

                // Save the generated barcode as a PNG file
                string filePath = Path.Combine(_environment.WebRootPath, "GeneratedBarcode/barcode.png");
                barcode.SaveAsPng(filePath);

                // Get the file name and URL for the generated barcode image
                string fileName = Path.GetFileName(filePath);
                string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}/GeneratedBarcode/{fileName}";
                ViewBag.QrCodeUri = imageUrl;
            }
            catch (Exception)
            {
                throw;
            }
            return View();
        }
    }
}
using Microsoft.AspNetCore.Mvc;
using IronBarCode;
using System;
using System.Drawing;
using System.IO;

namespace YourNamespace.Controllers
{
    public class HomeController : Controller
    {
        private readonly IWebHostEnvironment _environment;

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

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

        // Handling POST operation inside this Action method
        [HttpPost]
        public IActionResult CreateBarcode(GenerateBarcodeModel generateBarcode)
        {
            try
            {
                // Create a barcode using the input text
                GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(generateBarcode.Barcode, BarcodeWriterEncoding.Code128);

                // Adding annotation text to barcode
                barcode.AddBarcodeValueTextBelowBarcode();

                // Styling the Barcode
                barcode.ResizeTo(400, 120);
                barcode.ChangeBarCodeColor(Color.Red);
                barcode.SetMargins(10);

                // Define path to save the barcode image
                string path = Path.Combine(_environment.WebRootPath, "GeneratedBarcode");
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }

                // Save the generated barcode as a PNG file
                string filePath = Path.Combine(_environment.WebRootPath, "GeneratedBarcode/barcode.png");
                barcode.SaveAsPng(filePath);

                // Get the file name and URL for the generated barcode image
                string fileName = Path.GetFileName(filePath);
                string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}/GeneratedBarcode/{fileName}";
                ViewBag.QrCodeUri = imageUrl;
            }
            catch (Exception)
            {
                throw;
            }
            return View();
        }
    }
}
Imports Microsoft.AspNetCore.Mvc
Imports IronBarCode
Imports System
Imports System.Drawing
Imports System.IO

Namespace YourNamespace.Controllers
	Public Class HomeController
		Inherits Controller

		Private ReadOnly _environment As IWebHostEnvironment

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

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

		' Handling POST operation inside this Action method
		<HttpPost>
		Public Function CreateBarcode(ByVal generateBarcode As GenerateBarcodeModel) As IActionResult
			Try
				' Create a barcode using the input text
				Dim barcode As GeneratedBarcode = BarcodeWriter.CreateBarcode(generateBarcode.Barcode, BarcodeWriterEncoding.Code128)

				' Adding annotation text to barcode
				barcode.AddBarcodeValueTextBelowBarcode()

				' Styling the Barcode
				barcode.ResizeTo(400, 120)
				barcode.ChangeBarCodeColor(Color.Red)
				barcode.SetMargins(10)

				' Define path to save the barcode image
				Dim path As String = System.IO.Path.Combine(_environment.WebRootPath, "GeneratedBarcode")
				If Not Directory.Exists(path) Then
					Directory.CreateDirectory(path)
				End If

				' Save the generated barcode as a PNG file
				Dim filePath As String = System.IO.Path.Combine(_environment.WebRootPath, "GeneratedBarcode/barcode.png")
				barcode.SaveAsPng(filePath)

				' Get the file name and URL for the generated barcode image
				Dim fileName As String = System.IO.Path.GetFileName(filePath)
				Dim imageUrl As String = $"{Me.Request.Scheme}://{Me.Request.Host}{Me.Request.PathBase}/GeneratedBarcode/{fileName}"
				ViewBag.QrCodeUri = imageUrl
			Catch e1 As Exception
				Throw
			End Try
			Return View()
		End Function
	End Class
End Namespace
$vbLabelText   $csharpLabel

El método de acción en el código anterior manejará la solicitud de envío generada desde la Vista que crearemos más tarde. Con IronBarcode, puede personalizar el formato del código de barras, el elemento de la imagen, la fuente del código de barras y el elemento HTML de la imagen. Se podrían requerir bibliotecas adicionales para más personalización, como IronDrawing para instalar la fuente del código de barras. Se puede encontrar una documentación más detallada de la API aquí.

Ahora podemos crear una vista para nuestro método generador de códigos de barras.

En el archivo HomeController.cs, haga clic derecho en el método CreateBarcode y haga clic en Agregar Vista.

Cómo generar y mostrar dinámicamente un código de barras en ASP.NET MVC: Figura 11

Seleccione Vista Razor y haga clic en agregar.

Cómo generar y mostrar dinámicamente un código de barras en ASP.NET MVC: Figura 12

Seleccione los parámetros como se muestra en la imagen de abajo y haga clic en Agregar. Automáticamente agregará una vista para ese método.

Cómo generar y mostrar dinámicamente un código de barras en ASP.NET MVC: Figura 13

Puede modificar el código generado para cambiar la interfaz como desee.

@model GenerateBarcodeMVCCore6_Demo.Models.GenerateBarcodeModel

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

<h1>CreateBarcode</h1>

<form asp-action="CreateBarcode" method="post">
    <div>
        <label asp-for="Barcode"></label>
        <input asp-for="Barcode" />
        <span asp-validation-for="Barcode"></span>
    </div>
    <button type="submit">Generate Barcode</button>
</form>

@if (ViewBag.QrCodeUri != null)
{
    <div>
        <img src="@ViewBag.QrCodeUri" alt="Barcode Image" />
    </div>
}

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

Ahora que todo está configurado, simplemente abra el archivo _Layout.cshtml y agregue el código para agregar la opción CreateBarcode en el navbar.

<li class="nav-item">
    <a class="nav-link text-dark" asp-controller="Home" asp-action="CreateBarcode">CreateBarcode</a>
</li>
<li class="nav-item">
    <a class="nav-link text-dark" asp-controller="Home" asp-action="CreateBarcode">CreateBarcode</a>
</li>
HTML

Ahora ejecute la aplicación, escriba texto en el campo de texto y haga clic en el botón Generar código de barras, y creará y mostrará la imagen del código de barras dinámicamente.

5.1. Salida

Cómo generar y mostrar dinámicamente un código de barras en ASP.NET MVC: Figura 14

6. Conclusión

La generación y visualización de imágenes de códigos de barras dinámicamente en aplicaciones ASP.NET MVC se puede lograr utilizando la biblioteca IronBarcode, una poderosa biblioteca de .NET para códigos de barras que ofrece una amplia gama de características para crear, leer y manipular imágenes de códigos de barras en aplicaciones .NET. Al satisfacer requisitos previos como instalar el marco de trabajo .NET, Visual Studio, y la biblioteca IronBarcode, los desarrolladores pueden crear fácilmente proyectos ASP.NET MVC y generar y mostrar imágenes de códigos de barras en varios formatos como Code 39, Code 128 y QR Code. La biblioteca IronBarcode proporciona a los desarrolladores características para generar códigos de barras con dimensiones personalizadas, colores y fuentes, y para agregar texto y logotipos a las imágenes de códigos de barras. Además de la generación de códigos de barras, IronBarcode también incluye características para leer y decodificar imágenes de códigos de barras. Con IronBarcode, los desarrolladores pueden crear fácilmente aplicaciones web potentes y dinámicas que satisfacen sus necesidades empresariales. Para un tutorial relacionado sobre este tema, visite el siguiente enlace. Para un tutorial paso a paso sobre la generación de códigos de barras y códigos QR, consulte el siguiente enlace.

Preguntas Frecuentes

¿Cómo puedo generar dinámicamente imágenes de códigos de barras en ASP.NET MVC?

Puedes utilizar la biblioteca IronBarcode para generar dinámicamente imágenes de códigos de barras en ASP.NET MVC integrando su API en tu proyecto. Esta biblioteca de C# admite varios formatos de códigos de barras y permite la personalización en términos de dimensiones, colores y texto.

¿Cuáles son los beneficios de usar IronBarcode en aplicaciones ASP.NET MVC?

IronBarcode proporciona funcionalidad multiplataforma sin depender de las APIs de .NET Graphics específicas de Windows. Soporta múltiples formatos de códigos de barras, ofrece opciones de personalización y puede leer y decodificar códigos de barras de imágenes, PDFs y transmisiones en vivo de cámaras.

¿Cómo integró IronBarcode en un proyecto ASP.NET MVC?

Para integrar IronBarcode en un proyecto ASP.NET MVC, necesitas instalar la biblioteca a través de NuGet Package Manager en Visual Studio, configurar un modelo para los datos de código de barras, crear un controlador para manejar la generación de códigos de barras y diseñar una vista para la interacción del usuario y la visualización de códigos de barras.

¿Qué formatos de códigos de barras son compatibles para la generación en ASP.NET MVC usando IronBarcode?

IronBarcode admite la generación de una amplia gama de formatos de códigos de barras en ASP.NET MVC, incluidos Code 39, Code 128, Código QR, Data Matrix y PDF417.

¿Puedo personalizar la apariencia de las imágenes de códigos de barras generadas con IronBarcode?

Sí, IronBarcode permite la personalización de las imágenes de códigos de barras, incluyendo el ajuste del formato de código de barras, colores, dimensiones, fuentes y agregar texto o logos al código de barras.

¿Cómo puedo solucionar problemas al generar códigos de barras en ASP.NET MVC?

Si encuentras problemas al generar códigos de barras en ASP.NET MVC, asegúrate de que la biblioteca IronBarcode esté correctamente instalada, se cumplan todas las dependencias y el modelo de datos del código de barras y la configuración del controlador estén correctamente implementados. Consulta la documentación de IronBarcode para obtener orientación adicional.

¿Es posible decodificar códigos de barras en una aplicación ASP.NET MVC usando IronBarcode?

Sí, IronBarcode incluye funcionalidad para decodificar códigos de barras de varias fuentes como imágenes, documentos en PDF y transmisiones en vivo de cámaras, incluso si están parcialmente dañadas.

¿Cuáles son los requisitos previos para configurar un proyecto ASP.NET MVC con IronBarcode?

Necesitas tener instalado .NET Framework o .NET Core, Visual Studio y la biblioteca IronBarcode, que se puede descargar del sitio web de Iron Software o instalar a través de NuGet Package Manager.

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