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.
- .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.
- 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.
- 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.

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

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

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

Se ha creado un proyecto .NET.

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.

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.

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.

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.

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 NamespaceCree una carpeta llamada "GeneratedBarcode" en la carpeta wwwroot para almacenar las imágenes de códigos de barras generadas.

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 NamespaceEl 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.

Seleccione Vista Razor y haga clic en agregar.

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.

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>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

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.






