Saltar al pie de página
USO DE IRONBARCODE

Generar códigos de barras en aplicaciones web ASP.NET Core

La integración de la generación de códigos de barras en una aplicación web ASP.NET abre potentes posibilidades para la gestión de inventarios, el seguimiento de productos y la automatización de documentos. Este tutorial demuestra cómo generar códigos de barras en un proyecto .NET Core utilizando IronBarcode , una biblioteca de códigos de barras que admite más de 30 formatos, incluidos código QR, Data Matrix, código 128 y UPC A.

El siguiente ejemplo rápido muestra cómo crear un código de barras Código 128 y devolverlo como una imagen PNG desde una acción del controlador MVC:

using IronBarCode;
using Microsoft.AspNetCore.Mvc;

public IActionResult GenerateBarcode(string data)
{
    GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(data, BarcodeWriterEncoding.Code128);
    barcode.ResizeTo(400, 120);
    barcode.AddBarcodeValueTextBelowBarcode();
    byte[] barcodeBytes = barcode.ToPngBinaryData();
    return File(barcodeBytes, "image/png");
}
using IronBarCode;
using Microsoft.AspNetCore.Mvc;

public IActionResult GenerateBarcode(string data)
{
    GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(data, BarcodeWriterEncoding.Code128);
    barcode.ResizeTo(400, 120);
    barcode.AddBarcodeValueTextBelowBarcode();
    byte[] barcodeBytes = barcode.ToPngBinaryData();
    return File(barcodeBytes, "image/png");
}
$vbLabelText   $csharpLabel

Comience su prueba gratuita para seguir los ejemplos de código tutoriales completos a continuación.

¿Cómo instalar una biblioteca de códigos de barras en un proyecto .NET Core ?

Para agregar capacidades de generación de códigos de barras a una aplicación web ASP.NET Core es necesario instalar el paquete NuGet IronBarcode . Abra Visual Studio y utilice la consola del gestor de paquetes para instalar las dependencias:

Install-Package BarCode

El paquete es compatible con .NET Core 6, 7, 8, 10 y versiones más nuevas, así como con .NET Framework 4.6.2+. La biblioteca maneja todas las dependencias automáticamente, sin requerir fuentes de código de barras adicionales ni configuración del sistema. Una vez instalado, agregue la referencia del espacio de nombres al controlador o al archivo de servicio:

using IronBarCode;
using IronBarCode;
$vbLabelText   $csharpLabel

¿Qué versiones y plataformas de .NET son compatibles?

IronBarcode se dirige a todos los entornos de ejecución .NET modernos:

  • .NET 10, 9, 8, 7, 6 : versiones LTS y STS totalmente compatibles
  • .NET Framework 4.6.2+ : compatibilidad con aplicaciones heredadas
  • Destinos de implementación : Windows, Linux, macOS, Docker, Azure, AWS
  • Objetivos móviles : Android e iOS a través de .NET MAUI

No se requieren bibliotecas GD externas, códecs nativos ni instalaciones de fuentes de códigos de barras. La biblioteca es completamente autónoma y resuelve toda la lógica de codificación internamente.

¿Cómo agregar el espacio de nombres a un controlador?

Después de instalar el paquete NuGet , haga referencia al espacio de nombres IronBarCode en la parte superior de cualquier controlador, servicio o modelo de Razor Page donde se necesite la generación de código de barras:

using IronBarCode;
using Microsoft.AspNetCore.Mvc;
using IronBarCode;
using Microsoft.AspNetCore.Mvc;
$vbLabelText   $csharpLabel

Esta única directiva using da acceso a BarcodeWriter, QRCodeWriter, BarcodeReader y todos los tipos de soporte tanto para la generación como para la lectura de códigos de barras.

¿Cómo se generan códigos de barras en una aplicación web ASP.NET Core ?

La creación de códigos de barras en un controlador MVC involucra la clase BarcodeWriter de IronBarcode. El siguiente ejemplo demuestra una acción de controlador completa que crea un código de barras Código 128 basado en una URL o texto proporcionado por un usuario:

using IronBarCode;
using Microsoft.AspNetCore.Mvc;

public class BarcodeController : Controller
{
    public IActionResult GenerateBarcode(string data)
    {
        // Generate barcode from input data
        GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(
            data,
            BarcodeWriterEncoding.Code128);
        barcode.ResizeTo(400, 120);
        barcode.AddBarcodeValueTextBelowBarcode();
        // Return as image for display in browser
        byte[] barcodeBytes = barcode.ToPngBinaryData();
        return File(barcodeBytes, "image/png");
    }
}
using IronBarCode;
using Microsoft.AspNetCore.Mvc;

public class BarcodeController : Controller
{
    public IActionResult GenerateBarcode(string data)
    {
        // Generate barcode from input data
        GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(
            data,
            BarcodeWriterEncoding.Code128);
        barcode.ResizeTo(400, 120);
        barcode.AddBarcodeValueTextBelowBarcode();
        // Return as image for display in browser
        byte[] barcodeBytes = barcode.ToPngBinaryData();
        return File(barcodeBytes, "image/png");
    }
}
$vbLabelText   $csharpLabel

Imagen de código de barras de salida

Generación de códigos de barras ASP .NET : cree un generador de códigos de barras para su aplicación web: Imagen 1 - Código de barras generado

El método BarcodeWriter.CreateBarcode() acepta datos de código de barras como primer parámetro y el formato de codificación como segundo. Este enfoque crea códigos de barras de forma dinámica según la entrada del usuario o los valores de la base de datos.

Para guardar imágenes de códigos de barras en una carpeta de proyecto, utilice el método SaveAsImage():

barcode.SaveAsImage("wwwroot/images/generated-barcode.png");
barcode.SaveAsImage("wwwroot/images/generated-barcode.png");
$vbLabelText   $csharpLabel

La biblioteca admite varios formatos de salida, como PNG, GIF, BMP, SVG y JPEG. También puede exportar códigos de barras como HTML para incrustarlos directamente en páginas web.

¿Cómo devolver un código de barras como descarga de archivo?

Para devolver el código de barras como un archivo descargable en lugar de una imagen en línea, configure el encabezado Content-Disposition en la respuesta:

public IActionResult DownloadBarcode(string data)
{
    GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(data, BarcodeWriterEncoding.Code128);
    barcode.ResizeTo(400, 120);
    byte[] pdfBytes = barcode.ToPdfBinaryData();
    return File(pdfBytes, "application/pdf", "barcode.pdf");
}
public IActionResult DownloadBarcode(string data)
{
    GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(data, BarcodeWriterEncoding.Code128);
    barcode.ResizeTo(400, 120);
    byte[] pdfBytes = barcode.ToPdfBinaryData();
    return File(pdfBytes, "application/pdf", "barcode.pdf");
}
$vbLabelText   $csharpLabel

Este patrón es útil para la generación de etiquetas de envío, flujos de trabajo de etiquetado de productos y cualquier escenario en el que el usuario final necesite guardar o imprimir un documento de código de barras directamente.

¿Qué tipos de BarCodes son compatibles con las aplicaciones web?

IronBarcode admite más de 30 formatos. A continuación se detalla cómo crear los tipos más utilizados:

Generación de códigos QR

// Create QR Code with custom size
GeneratedBarcode qrCode = QRCodeWriter.CreateQrCode(
    "https://example.com/product/12345",
    500,
    QRCodeWriter.QrErrorCorrectionLevel.Medium);
qrCode.SaveAsPng("product-qr.png");
// Create QR Code with custom size
GeneratedBarcode qrCode = QRCodeWriter.CreateQrCode(
    "https://example.com/product/12345",
    500,
    QRCodeWriter.QrErrorCorrectionLevel.Medium);
qrCode.SaveAsPng("product-qr.png");
$vbLabelText   $csharpLabel

Código QR de salida

Generación de códigos de barras ASP .NET : cree un generador de códigos de barras para su aplicación web: Imagen 2 - Imagen 2 de 6 relacionada con Generación de códigos de barras ASP .NET : cree un generador de códigos de barras para su aplicación web

La generación de códigos QR admite niveles de corrección de errores que determinan qué parte del código puede dañarse sin dejar de ser legible. Utilice un nivel medio o alto para aplicaciones de impresión de códigos QR en las que se prevea un desgaste físico. Obtenga más información sobre las opciones de personalización del código QR .

Matriz de datos y otros formatos 2D

// Create Data Matrix barcode
GeneratedBarcode dataMatrix = BarcodeWriter.CreateBarcode(
    "DMX-2024-001",
    BarcodeWriterEncoding.DataMatrix);
dataMatrix.SaveAsGif("datamatrix.gif");
// Create Data Matrix barcode
GeneratedBarcode dataMatrix = BarcodeWriter.CreateBarcode(
    "DMX-2024-001",
    BarcodeWriterEncoding.DataMatrix);
dataMatrix.SaveAsGif("datamatrix.gif");
$vbLabelText   $csharpLabel

Matriz de datos de salida

Generación de códigos de barras ASP .NET : cree un generador de códigos de barras para su aplicación web: Imagen 3 - Matriz de datos generada

Los códigos de barras Data Matrix destacan en situaciones que requieren una codificación compacta y de alta densidad. La biblioteca también genera formatos PDF417, Aztec y MaxiCode . Estos tipos de códigos de barras 2D almacenan muchos más datos que los formatos lineales, al tiempo que mantienen una precisión de escaneado fiable.

Códigos de barras lineales (UPC, EAN, Code 39)

// Create UPC-A barcode for retail products
GeneratedBarcode upcBarcode = BarcodeWriter.CreateBarcode(
    "012345678905",
    BarcodeWriterEncoding.UPCA);
upcBarcode.SaveAsPng("upc-barcode.png");
// Create UPC-A barcode for retail products
GeneratedBarcode upcBarcode = BarcodeWriter.CreateBarcode(
    "012345678905",
    BarcodeWriterEncoding.UPCA);
upcBarcode.SaveAsPng("upc-barcode.png");
$vbLabelText   $csharpLabel

Resultado

Generación de códigos de barras ASP .NET : cree un generador de códigos de barras para su aplicación web: Imagen 4 - Código de barras generado

Los códigos de barras UPC A y EAN incluyen validación automática de suma de comprobación, lo que evita errores de codificación en el proceso de generación de códigos de barras. Para obtener una lista completa de formatos admitidos, consulte la referencia de formatos de código de barras .

¿Cómo personalizar y diseñar imágenes de códigos de barras?

Para diseñar códigos de barras para una aplicación web es necesario ajustar colores, fuentes, márgenes y anotaciones. La fluidez de la API facilita la personalización:

GeneratedBarcode styledBarcode = BarcodeWriter.CreateBarcode(
    "STYLED-2024",
    BarcodeWriterEncoding.Code128);
// Apply styling
styledBarcode.ResizeTo(450, 150);
styledBarcode.SetMargins(20);
styledBarcode.ChangeBarCodeColor(IronSoftware.Drawing.Color.DarkBlue);
styledBarcode.AddAnnotationTextAboveBarcode("Product ID:");
styledBarcode.AddBarcodeValueTextBelowBarcode();
// Export to multiple formats
styledBarcode.SaveAsPng("styled-barcode.png");
styledBarcode.SaveAsPdf("styled-barcode.pdf");
GeneratedBarcode styledBarcode = BarcodeWriter.CreateBarcode(
    "STYLED-2024",
    BarcodeWriterEncoding.Code128);
// Apply styling
styledBarcode.ResizeTo(450, 150);
styledBarcode.SetMargins(20);
styledBarcode.ChangeBarCodeColor(IronSoftware.Drawing.Color.DarkBlue);
styledBarcode.AddAnnotationTextAboveBarcode("Product ID:");
styledBarcode.AddBarcodeValueTextBelowBarcode();
// Export to multiple formats
styledBarcode.SaveAsPng("styled-barcode.png");
styledBarcode.SaveAsPdf("styled-barcode.pdf");
$vbLabelText   $csharpLabel

Imagen de código de barras estilizada

Generación de códigos de barras ASP .NET : cree un generador de códigos de barras para su aplicación web: Imagen 5 - Código de barras con estilo de salida

El método SetMargins() agrega espacios en blanco alrededor del código de barras para una mejor legibilidad del escáner. Puede ajustar la configuración de fuentes para el texto de anotación, cambiar la familia y el tamaño de fuente y personalizar ampliamente el estilo del código de barras . La biblioteca representa texto utilizando fuentes del sistema sin necesidad de fuentes de código de barras externas.

¿Cómo incrustar un código de barras directamente en una vista Razor ?

Para las vistas ASP.NET MVC, genere códigos de barras como cadenas Base64 para incrustación HTML directa sin guardar archivos en el disco:

public IActionResult DisplayBarcode()
{
    GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(
        "INV-2024-0042",
        BarcodeWriterEncoding.Code128);
    string base64Image = barcode.ToDataUrl();
    ViewBag.BarcodeImage = base64Image;
    return View();
}
public IActionResult DisplayBarcode()
{
    GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(
        "INV-2024-0042",
        BarcodeWriterEncoding.Code128);
    string base64Image = barcode.ToDataUrl();
    ViewBag.BarcodeImage = base64Image;
    return View();
}
$vbLabelText   $csharpLabel

Código de barras mostrado

Generación de códigos de barras ASP .NET : cree un generador de códigos de barras para su aplicación web: Imagen 6: Código de barras mostrado en nuestro navegador

En la vista Razor , muéstrelo dentro de un elemento <div>:

<div class="barcode-container">
    <img src="@ViewBag.BarcodeImage" alt="Generated Barcode" />
</div>
<div class="print-actions">
    <button onclick="window.print()">Print Barcode</button>
</div>
<div class="barcode-container">
    <img src="@ViewBag.BarcodeImage" alt="Generated Barcode" />
</div>
<div class="print-actions">
    <button onclick="window.print()">Print Barcode</button>
</div>
HTML

Este enfoque elimina la necesidad de guardar imágenes de códigos de barras en el sistema de archivos, manteniendo el servicio web sin estado. La referencia completa de API documenta todos los métodos y propiedades disponibles.

¿Cómo leer y escanear códigos de barras en ASP.NET Core?

La lectura de códigos de barras de imágenes cargadas o secuencias de archivos es manejada por la clase BarcodeReader. Esto es útil para recibir flujos de trabajo, procesar devoluciones y cualquier escenario en el que sea necesario decodificar un código de barras escaneado en el lado del servidor:

using IronBarCode;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;

public class BarcodeScanController : Controller
{
    public IActionResult ScanBarcode(IFormFile uploadedImage)
    {
        using var stream = uploadedImage.OpenReadStream();
        var results = BarcodeReader.Read(stream);
        if (results.Count > 0)
        {
            string decodedValue = results[0].Value;
            return Ok(new { barcode = decodedValue });
        }
        return BadRequest("No barcode detected in image.");
    }
}
using IronBarCode;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;

public class BarcodeScanController : Controller
{
    public IActionResult ScanBarcode(IFormFile uploadedImage)
    {
        using var stream = uploadedImage.OpenReadStream();
        var results = BarcodeReader.Read(stream);
        if (results.Count > 0)
        {
            string decodedValue = results[0].Value;
            return Ok(new { barcode = decodedValue });
        }
        return BadRequest("No barcode detected in image.");
    }
}
$vbLabelText   $csharpLabel

El método BarcodeReader.Read() acepta rutas de archivos, secuencias y objetos System.Drawing.Bitmap. Detecta automáticamente el formato del código de barras y devuelve una colección de objetos BarcodeResult, cada uno de los cuales contiene el valor decodificado, el tipo de formato y la posición en la imagen. Cuando aparecen varios códigos de barras en una sola imagen (por ejemplo, en la fotografía de un estante de un almacén), el lector devuelve todos los valores detectados en la colección, no solo el primero.

También vale la pena considerar el rendimiento para aplicaciones ASP.NET de alto rendimiento. El lector admite el escaneo de región de interés, que recorta la imagen en un rectángulo de píxeles específico antes del análisis. Esto reduce significativamente el tiempo de procesamiento cuando los códigos de barras siempre aparecen en un área conocida de la imagen.

Para escenarios avanzados, como ajustar el contraste para imágenes de baja calidad o ajustar la sensibilidad de detección, consulte la documentación de lectura de códigos de barras .

¿Cómo exportar códigos de barras a PDF en ASP.NET?

La generación de códigos de barras integrados directamente en documentos PDF es un requisito común para etiquetas de envío, etiquetas de almacén y documentos de cumplimiento. IronBarcode admite guardar directamente en formato PDF:

GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(
    "SHIP-2024-99471",
    BarcodeWriterEncoding.Code128);
barcode.ResizeTo(500, 150);
barcode.AddAnnotationTextAboveBarcode("Shipping Label");
barcode.AddBarcodeValueTextBelowBarcode();
barcode.SaveAsPdf("shipping-label.pdf");
GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(
    "SHIP-2024-99471",
    BarcodeWriterEncoding.Code128);
barcode.ResizeTo(500, 150);
barcode.AddAnnotationTextAboveBarcode("Shipping Label");
barcode.AddBarcodeValueTextBelowBarcode();
barcode.SaveAsPdf("shipping-label.pdf");
$vbLabelText   $csharpLabel

Para documentos PDF con múltiples códigos de barras (por ejemplo, una página de etiquetas de productos), genere cada código de barras por separado y combínelos utilizando una biblioteca PDF. La guía de integración de IronPDF explica cómo estampar códigos de barras en plantillas PDF existentes, lo que resulta útil para agregar códigos de barras a diseños de etiquetas prediseñados.

El método SaveAsPdf() también acepta dimensiones de salida para que la página PDF generada coincida con el tamaño de etiqueta física requerido por las impresoras de etiquetas.

¿Cómo gestionar los errores de generación y validación de códigos de barras?

Las reglas de codificación de códigos de barras varían según el formato. Por ejemplo, UPC-A requiere exactamente 11 o 12 dígitos, EAN-13 requiere exactamente 12 o 13, y el Código 128 tiene un límite práctico de 48 caracteres para una salida legible en tamaños estándar. Pasar datos no válidos genera un IronBarCodeEncoderException.

Manejar errores de codificación explícitamente en las acciones del controlador:

public IActionResult SafeGenerate(string data, string format)
{
    try
    {
        var encoding = Enum.Parse<BarcodeWriterEncoding>(format, true);
        GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(data, encoding);
        return File(barcode.ToPngBinaryData(), "image/png");
    }
    catch (IronBarCodeEncoderException ex)
    {
        return BadRequest($"Encoding error: {ex.Message}");
    }
    catch (ArgumentException ex)
    {
        return BadRequest($"Unknown format: {ex.Message}");
    }
}
public IActionResult SafeGenerate(string data, string format)
{
    try
    {
        var encoding = Enum.Parse<BarcodeWriterEncoding>(format, true);
        GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(data, encoding);
        return File(barcode.ToPngBinaryData(), "image/png");
    }
    catch (IronBarCodeEncoderException ex)
    {
        return BadRequest($"Encoding error: {ex.Message}");
    }
    catch (ArgumentException ex)
    {
        return BadRequest($"Unknown format: {ex.Message}");
    }
}
$vbLabelText   $csharpLabel

Para uso en producción, valide la longitud de los datos de entrada y el conjunto de caracteres antes de llamar a CreateBarcode(). La documentación de IronBarcode proporciona restricciones de codificación específicas de formato para cada tipo de código de barras compatible.

¿Cuales son tus próximos pasos?

La creación de un generador de códigos de barras ASP.NET con IronBarcode proporciona una solución confiable para crear, diseñar y exportar imágenes de códigos de barras en aplicaciones web .NET Core . La biblioteca gestiona estándares de codificación complejos de forma automática, al tiempo que ofrece una amplia personalización a través de una API fácil de usar para los desarrolladores. Ya sea que genere códigos QR para escaneo móvil, códigos de barras Data Matrix para aplicaciones industriales o códigos UPC para venta minorista, IronBarcode se integra directamente con los controladores ASP.NET MVC y las páginas Razor .

Explora estos recursos para ir más allá:

Puede probar el conjunto completo de funciones durante el período de evaluación gratuito. Para implementación de producción y uso comercial, consulte las opciones de licencia para seleccionar la licencia adecuada para los requisitos de su proyecto. La biblioteca admite exportaciones de mapas de bits y vectores, y cada versión mantiene la compatibilidad con los destinos de implementación de Windows, Linux, Android e iOS.

Si tiene preguntas, desea realizar evaluaciones comparativas con bibliotecas de códigos de barras alternativas for .NET o necesita asistencia para la integración empresarial, visite el portal de asistencia de IronBarcode .

Empiece con IronBarcode ahora.
green arrow pointer

Preguntas Frecuentes

¿Qué formatos de código de barras admite IronBarcode en ASP.NET Core?

IronBarcode admite más de 30 formatos de códigos de barras, incluyendo QR Code, Data Matrix, Code 128, UPC-A, EAN-13, Code 39, PDF417, Aztec, MaxiCode, ITF y más. Cubre formatos lineales 1D y matriciales 2D.

¿Cómo se devuelve un código de barras generado como una imagen desde un controlador ASP.NET MVC?

Llame a BarcodeWriter.CreateBarcode() con los datos y el formato de codificación, luego use ToPngBinaryData() para obtener la matriz de bytes y devolverla con File(bytes, 'image/png') desde la acción del controlador.

¿Puede IronBarcode leer códigos de barras de imágenes cargadas en ASP.NET?

Sí. Use BarcodeReader.Read() con una secuencia IFormFile para decodificar códigos de barras de imágenes subidas por el usuario. El lector devuelve todos los códigos de barras detectados como una colección de objetos BarcodeResult.

¿Cómo incrustar un código de barras en una vista de Razor sin guardar un archivo?

Llame a barcode.ToDataUrl() para obtener una cadena de URL de datos Base64, asignarla a ViewBag y representarla en la vista Razor como el atributo src de un elemento img.

¿Qué versiones de .NET admite IronBarcode ?

IronBarcode es compatible con .NET 6, 7, 8, 9, 10 y .NET Framework 4.6.2+. Funciona en Windows, Linux, macOS, Docker, Azure, AWS, Android e iOS.

¿Cómo manejar datos de códigos de barras no válidos en ASP.NET?

Envuelva BarcodeWriter.CreateBarcode() en un try-catch para IronBarCodeEncoderException. Valide la longitud de entrada y el conjunto de caracteres con las restricciones específicas del formato antes de codificar para evitar excepciones.

¿Puede IronBarcode exportar códigos de barras a PDF?

Sí. Invoque SaveAsPdf() en cualquier objeto GeneratedBarcode para generar un archivo PDF. El método acepta una ruta de salida y dimensiones de página opcionales para que coincidan con los tamaños físicos de las etiquetas.

¿Es necesaria una fuente de código de barras para utilizar IronBarcode?

No. IronBarcode es autónomo y gestiona toda la codificación y renderización internamente. No requiere fuentes de código de barras, bibliotecas GD ni configuración adicional del sistema.

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

Equipo de soporte de Iron

Estamos disponibles online las 24 horas, 5 días a la semana.
Chat
Email
Llámame