Saltar al pie de página
USO DE IRONBARCODE

Cómo generar códigos de barras en C# usando IronBarcode

IronBarcode es una biblioteca de códigos de barras .NET que le permite generar y leer códigos de barras en C# con solo unas pocas líneas de código. Puede crear códigos Code 128, QR, EAN-13, PDF-417, Data Matrix y docenas de otros tipos de códigos de barras, y luego exportarlos a PNG, JPEG, TIFF, BMP, PDF o HTML. Esta guía lo guiará a través de la instalación, los patrones de generación de núcleos, el estilo, los formatos de exportación y las mejores prácticas para que pueda agregar una salida de código de barras confiable a cualquier aplicación .NET .

¿Cómo instalar una biblioteca generadora de códigos de barras mediante el Administrador de paquetes NuGet ?

Abra Visual Studio e instale el paquete NuGet con este comando en la consola del gestor de paquetes:

Install-Package BarCode

Generador de código de barras Código fuente C# con IronBarcode: Imagen 1 - Instalación

El paquete NuGet es compatible con .NET 10, .NET 8, .NET 6, .NET Core, .NET Standard y .NET Framework , lo que lo hace compatible con aplicaciones de Windows y aplicaciones .NET multiplataforma. IronBarcode admite la implementación en contenedores Docker, Azure y servidores Linux. Encuentre más detalles y documentación de referencia en la página de documentación de IronBarcode y en el proyecto Iron Software GitHub .

Después de la instalación, verá el espacio de nombres IronBarCode disponible en su proyecto. La biblioteca no requiere dependencias de tiempo de ejecución adicionales en Windows: en Linux, es posible que necesite instalar algunas bibliotecas del sistema como se documenta en la guía de implementación de IronBarcode para Linux .

¿Cómo generar un archivo de imagen de código de barras simple en C#?

Cree imágenes de códigos de barras con unas pocas líneas de código. El siguiente ejemplo muestra la generación de un código de barras que guarda un archivo de imagen PNG:

using IronBarCode;

// Generate a simple barcode and encode the string data
var barcode = BarcodeWriter.CreateBarcode("SKU-78432-X", BarcodeWriterEncoding.Code128);

// Save the barcode as a PNG image file
barcode.SaveAsPng("product-barcode.png");
using IronBarCode;

// Generate a simple barcode and encode the string data
var barcode = BarcodeWriter.CreateBarcode("SKU-78432-X", BarcodeWriterEncoding.Code128);

// Save the barcode as a PNG image file
barcode.SaveAsPng("product-barcode.png");
$vbLabelText   $csharpLabel

El método BarcodeWriter.CreateBarcode() acepta una cadena para codificar y el formato de código de barras de BarcodeWriterEncoding. La referencia GeneratedBarcode devuelta proporciona métodos de estilo y opciones de exportación para guardar en PNG, JPEG, BMP, TIFF, PDF o HTML.

Resultado

Generador de código de barras Código fuente C# con IronBarcode: Imagen 2 - Salida de código de barras

Code128 es el código de barras de referencia para sistemas de logística e inventario. Codifica letras mayúsculas, minúsculas, números y caracteres especiales en un formato lineal compacto. Este tipo de código de barras garantiza un escaneo correcto en centros de envío y comercios de todo el mundo. Al utilizar el método SaveAsPng(), IronBarcode establece automáticamente una resolución predeterminada adecuada para la visualización en pantalla y las impresoras estándar.

Para las aplicaciones en las que necesita servir la imagen del código de barras directamente desde un punto final web, puede usar ToStream() en lugar de guardarla en el disco. La secuencia se puede escribir directamente en un HttpResponse en ASP.NET Core o devolverse como un FileStreamResult desde una acción del controlador.

¿Cómo se crea un código QR y otros tipos de códigos de barras 2D?

IronBarcode es compatible con los principales formatos de códigos de barras, incluidos los tipos de códigos de barras 2D como QR Code y Data Matrix. Genera un código QR con una sintaxis similar:

using IronBarCode;

// Create a QR code and encode URL data
var qrCode = BarcodeWriter.CreateBarcode(
    "https://ironsoftware.com/csharp/barcode/",
    BarcodeWriterEncoding.QRCode
);
qrCode.SaveAsPng("website-qr.png");
using IronBarCode;

// Create a QR code and encode URL data
var qrCode = BarcodeWriter.CreateBarcode(
    "https://ironsoftware.com/csharp/barcode/",
    BarcodeWriterEncoding.QRCode
);
qrCode.SaveAsPng("website-qr.png");
$vbLabelText   $csharpLabel

Los tipos de código de barras QR son excelentes para almacenar URL y cargas de datos de mayor tamaño. La biblioteca gestiona la corrección de errores automáticamente, garantizando que el código de barras siga siendo escaneable aunque esté parcialmente dañado. De manera predeterminada, IronBarcode utiliza el nivel de corrección de errores M (medio), que se recupera de una pérdida de datos de aproximadamente el 15 %; puede elevarlo al nivel H para códigos de barras impresos que puedan estar rayados o parcialmente oscurecidos.

Resultado

Generador de código de barras Código fuente C# usando IronBarcode: Imagen 3 - Salida de código QR

Para los productos de venta al por menor que requieren códigos de barras EAN-13, genere imágenes de códigos de barras como estas:

using IronBarCode;

// Generate an EAN-13 barcode compatible with UPC for retail print applications
var eanBarcode = BarcodeWriter.CreateBarcode("5901234123457", BarcodeWriterEncoding.EAN13);
eanBarcode.SaveAsPng("retail-product.png");
using IronBarCode;

// Generate an EAN-13 barcode compatible with UPC for retail print applications
var eanBarcode = BarcodeWriter.CreateBarcode("5901234123457", BarcodeWriterEncoding.EAN13);
eanBarcode.SaveAsPng("retail-product.png");
$vbLabelText   $csharpLabel

EAN-13 es el formato estándar para sistemas de punto de venta minorista en todo el mundo. La biblioteca calcula automáticamente los dígitos de control, por lo que solo necesita proporcionar los primeros 12 dígitos de un número GTIN-13 válido. Si el dígito de control que proporciona no coincide, IronBarcode genera una excepción descriptiva en lugar de generar silenciosamente un código de barras ilegible.

Resultado

Generador de código de barras Código fuente C# con IronBarcode: Imagen 4 - Salida de código de barras EAN-13

Además del código 128, el código QR y EAN-13, la biblioteca admite el código 39, el código 93, UPC-A, UPC-E, ITF, Codabar, PDF-417, Aztec y Data Matrix. Una lista completa de formatos admitidos está disponible en la página de referencia de tipos de códigos de barras de IronBarcode .

¿Cómo crear un código QR con estilo y opciones de estilo avanzadas?

La generación profesional de códigos de barras suele requerir opciones de estilo avanzadas para ajustar los colores y añadir anotaciones. La clase GeneratedBarcode proporciona una API fluida con métodos de estilo:

using IronBarCode;
using IronSoftware.Drawing;

// Create a styled barcode with advanced styling options
var styledBarcode = BarcodeWriter
    .CreateBarcode("INV-2025-001847", BarcodeWriterEncoding.Code128)
    .ResizeTo(400, 120)
    .SetMargins(20)
    .ChangeBarCodeColor(Color.DarkBlue)
    .AddAnnotationTextAboveBarcode("Invoice Number:")
    .AddBarcodeValueTextBelowBarcode();

// Verify to ensure proper scanning after styling
bool isReadable = styledBarcode.Verify();
Console.WriteLine($"Barcode verification: {(isReadable ? "PASS" : "FAIL")}");
styledBarcode.SaveAsPng("styled-invoice-barcode.png");
using IronBarCode;
using IronSoftware.Drawing;

// Create a styled barcode with advanced styling options
var styledBarcode = BarcodeWriter
    .CreateBarcode("INV-2025-001847", BarcodeWriterEncoding.Code128)
    .ResizeTo(400, 120)
    .SetMargins(20)
    .ChangeBarCodeColor(Color.DarkBlue)
    .AddAnnotationTextAboveBarcode("Invoice Number:")
    .AddBarcodeValueTextBelowBarcode();

// Verify to ensure proper scanning after styling
bool isReadable = styledBarcode.Verify();
Console.WriteLine($"Barcode verification: {(isReadable ? "PASS" : "FAIL")}");
styledBarcode.SaveAsPng("styled-invoice-barcode.png");
$vbLabelText   $csharpLabel

La fluida API permite encadenar métodos de estilización para ajustar colores, establecer márgenes y añadir texto en una sola declaración. El método Verify() indica si su código de barras sigue siendo legible por máquina, lo que garantiza un escaneo adecuado en producción después de aplicar colores no estándar o cambiar el tamaño a dimensiones pequeñas.

Cambiar el color de la barra a un tono muy claro o azul con poco contraste contra un fondo blanco puede provocar que el código de barras no se escanee. Siempre llame al Verify() después de cualquier cambio de color. Si la verificación falla, aumente el contraste o vuelva a mostrar barras negras. La guía de personalización y estilo de códigos de barras cubre todos los métodos de estilo disponibles en detalle.

Para generar múltiples códigos de barras con un estilo consistente en todo un catálogo, cree un método auxiliar que aplique su cadena de estilo estándar a cada instancia de GeneratedBarcode. Este enfoque garantiza márgenes, tamaño de fuente y color uniformes en miles de imágenes generadas.

¿Cómo exportar códigos de barras a diferentes formatos de imagen?

Generar imágenes de códigos de barras en múltiples formatos para diferentes casos de uso. La biblioteca guarda en PNG, JPEG, BMP, TIFF, PDF y HTML:

using IronBarCode;

var barcode = BarcodeWriter.CreateBarcode("EXPORT-TEST", BarcodeWriterEncoding.Code128);

// Export barcode images to various formats
barcode.SaveAsPng("barcode.png");           // Web-compatible raster image
barcode.SaveAsJpeg("barcode.jpg");          // Compressed format for email attachments
barcode.SaveAsTiff("barcode.tiff");         // High-quality format for print workflows
barcode.SaveAsPdf("barcode.pdf");           // PDF document output
barcode.SaveAsHtmlFile("barcode.html");     // HTML for inline web embedding

// Get as bitmap stream for web APIs or database storage
System.IO.Stream barcodeStream = barcode.ToStream();
System.Drawing.Bitmap bitmapImage = barcode.ToBitmap();
using IronBarCode;

var barcode = BarcodeWriter.CreateBarcode("EXPORT-TEST", BarcodeWriterEncoding.Code128);

// Export barcode images to various formats
barcode.SaveAsPng("barcode.png");           // Web-compatible raster image
barcode.SaveAsJpeg("barcode.jpg");          // Compressed format for email attachments
barcode.SaveAsTiff("barcode.tiff");         // High-quality format for print workflows
barcode.SaveAsPdf("barcode.pdf");           // PDF document output
barcode.SaveAsHtmlFile("barcode.html");     // HTML for inline web embedding

// Get as bitmap stream for web APIs or database storage
System.IO.Stream barcodeStream = barcode.ToStream();
System.Drawing.Bitmap bitmapImage = barcode.ToBitmap();
$vbLabelText   $csharpLabel

El método ToStream() devuelve datos de código de barras compatibles con las API web de ASP.NET Core y las aplicaciones Blazor . El método ToBitmap() proporciona una referencia System.Drawing.Bitmap para una mayor manipulación de imágenes. Para estampar códigos de barras en documentos PDF existentes, consulte el tutorial de código de barras PDF de IronBarcode .

Resultado

Generador de código de barras Código fuente C# con IronBarcode: Imagen 5 - Salida de código de barras PNG

Generador de código de barras Código fuente C# con IronBarcode: Imagen 6 - Salida de código de barras HTML

La elección del formato correcto depende de su flujo de trabajo posterior. PNG no tiene pérdidas y es un buen valor predeterminado para interfaces de usuario web y de aplicaciones. El formato TIFF se prefiere para procesos de producción de impresión donde la precisión del color es importante. La salida en PDF es útil cuando necesita un documento listo para imprimir que una imprenta pueda manejar directamente. La salida HTML genera un archivo autónomo con una imagen base64 incorporada, lo cual resulta conveniente para plantillas de correo electrónico y portales web.

¿Qué entornos .NET multiplataforma admite IronBarcode ?

IronBarcode admite la generación de códigos de barras en todas las principales plataformas .NET . Desplegar en:

Soporte de la plataforma de implementación de IronBarcode
Plataforma Tiempos de ejecución compatibles Casos de uso típicos
Windows .NET 10, .NET 8, .NET Framework 4.6.2+ Aplicaciones de escritorio, servicios de Windows, servidores web IIS
Linux .NET 10, .NET 8, .NET Core 3.1+ Contenedores Docker, AWS Lambda, Azure Functions
macOS .NET 10, .NET 8 Entornos de desarrollo, aplicaciones de servidor macOS
Móvil .NET MAUI, Xamarin Aplicaciones móviles iOS y Android
Nube Azure, AWS, Google Nube Funciones sin servidor, microservicios en contenedores

La guía de configuración de IronBarcode Docker proporciona detalles sobre las bibliotecas del sistema necesarias para implementaciones en contenedores. Cuando se ejecuta en Linux, normalmente necesita tener libgdiplus y libc6-dev instalados en su imagen de Docker. En Alpine Linux, se requiere un conjunto de paquetes ligeramente diferente: la guía cubre tanto Ubuntu/Debian como Alpine Dockerfiles.

Para las implementaciones de AWS Lambda, el tutorial de implementación de AWS Lambda explica cómo agrupar dependencias nativas en el paquete de implementación y configurar límites de memoria para manejar cargas de trabajo de representación de códigos de barras.

¿Cómo seguir las mejores prácticas para la generación de códigos de barras en .NET?

Seguir un conjunto coherente de prácticas al generar imágenes de códigos de barras en aplicaciones C# marca la diferencia entre los códigos de barras que se escanean de manera confiable en el campo y aquellos que fallan en el punto de venta o en el almacén. Las siguientes pautas se aplican independientemente del formato de código de barras que elija.

Elija el formato de código de barras adecuado para su caso de uso. Seleccione un formato que se adapte a su entorno de escaneo y a sus requisitos de datos. Utilice códigos QR para URL y cargas de datos de más de 80 caracteres. Utilice el código 128 para inventario y logística donde los datos alfanuméricos deben caber en un símbolo lineal compacto. Utilice EAN-13 o UPC-A para productos minoristas que deben registrarse en el sistema GS1. La página de comparación de formatos de códigos de barras de IronBarcode proporciona una referencia lado a lado de todos los tipos admitidos, sus límites de capacidad y casos de uso recomendados.

Incluya siempre suficientes zonas de silencio. El espacio en blanco alrededor de un código de barras, llamado zona de silencio, es tan importante como las propias barras. Los escáneres lo utilizan para detectar dónde comienza y termina el símbolo. Utilice el método SetMargins() para agregar al menos 10 píxeles de relleno en cada lado para la visualización digital y al menos 2,5 mm para la salida de impresión. Cortar la zona tranquila es una de las causas más comunes de fallas de escaneo en producción.

Verificar después de cualquier cambio de estilo. Después de ajustar colores, aplicar degradados o cambiar el tamaño a una dimensión no estándar, llamar a Verify() en el objeto GeneratedBarcode. Si devuelve falso, su código de barras no se escaneará de manera confiable con hardware estándar. Aumente el contraste o reduzca la complejidad del cambio de estilo.

Utilice patrones de generación por lotes para la producción de gran volumen. Si su aplicación genera miles de códigos de barras (por ejemplo, etiquetas de productos o manifiestos de envío), proceselos en bucle y reutilice la misma configuración de estilo. Evite cargar recursos de fuentes u objetos de configuración dentro del bucle, ya que esto crea una sobrecarga innecesaria. El ejemplo de generación de códigos de barras por lotes de IronBarcode demuestra un patrón de bucle eficiente con una salida consistente.

Realice pruebas con diferentes modelos de escáner y condiciones de iluminación. Los lectores de códigos de barras varían en su tolerancia a colores de bajo contraste, módulos de pequeño tamaño y calidad de impresión. Pruebe los códigos de barras impresos con al menos dos tipos de escáner diferentes antes de implementarlos. Para los códigos QR que se muestran en las pantallas, pruebe con las cámaras de los teléfonos móviles tanto en condiciones de luz brillante como tenue. La página de estándares de verificación de códigos de barras GS1 proporciona orientación autorizada sobre la clasificación de calidad de los símbolos para códigos de barras minoristas.

Respete los límites de capacidad de datos. Cada formato de código de barras tiene una capacidad máxima de datos. El código 128 puede codificar cómodamente hasta aproximadamente 48 caracteres antes de que el símbolo se vuelva demasiado ancho para imprimirse en tamaños de etiquetas estándar. La capacidad del código QR depende del nivel de corrección de errores: en el nivel H, el máximo es de alrededor de 1.273 caracteres alfanuméricos. Exceder la capacidad obliga a la biblioteca a lanzar una excepción o degradar silenciosamente la calidad. Consulte la referencia de capacidad de datos del código QR en Wikipedia para obtener una tabla de capacidad rápida.

Sigue los patrones de eliminación de .NET . GeneratedBarcode y cualquier flujo devuelto por ToStream() implementan IDisposable. Envuélvalos en declaraciones using para liberar recursos no administrados rápidamente, especialmente en aplicaciones web de alto rendimiento donde la generación de códigos de barras se realiza por solicitud.

Comprender los modos de falla comunes también le ayudará a crear un código de generación más resistente. Las tres causas más frecuentes de fallas de escaneo son: zona tranquila insuficiente, color de barra demasiado cercano al color de fondo y código de barras escalado por debajo del tamaño mínimo del módulo para el formato elegido. El método Verify() de IronBarcode detecta los tres en tiempo de ejecución.

Para leer códigos de barras a partir de imágenes generadas (para pruebas de ida y vuelta o escanear archivos cargados), consulte la guía del lector de códigos de barras IronBarcode . La API de lectura refleja la API de escritura en simplicidad y admite la misma amplia gama de formatos.

El estándar ISO/IEC 15417 para Código 128 y el estándar ISO/IEC 18004 para códigos QR definen las especificaciones técnicas a las que cumple IronBarcode . Revisar el estándar relevante para el tipo de código de barras de destino le ayudará a comprender las limitaciones dentro de las cuales debe trabajar la biblioteca.

¿Cuales son tus próximos pasos?

Esta guía cubrió la generación de imágenes de códigos de barras en C# usando IronBarcode , desde la instalación de NuGet hasta la generación de Code 128, código QR y EAN-13, estilo avanzado con la API fluida, exportación de múltiples formatos, implementación multiplataforma y mejores prácticas de producción.

Para profundizar más, explora estos recursos:

Descargue IronBarcode para agregar funcionalidad de código de barras a sus aplicaciones .NET o comience una prueba gratuita de 30 días para generar imágenes de código de barras en su entorno sin una clave de licencia.

Preguntas Frecuentes

¿Cómo instalar IronBarcode usando el Administrador de paquetes NuGet ?

Abra Visual Studio, vaya a Herramientas > Administrador de paquetes NuGet > Consola del administrador de paquetes y ejecute: Install-Package BarCode. También puede buscar "IronBarcode" en la interfaz del administrador de paquetes NuGet y hacer clic en Instalar.

¿Qué tipos de códigos de barras puedes generar usando IronBarcode?

IronBarcode permite generar una amplia gama de tipos de códigos de barras, incluidos códigos QR, Código 128, Código 39, Código 93, UPC-A, UPC-E, EAN-13, EAN-8, PDF-417, Data Matrix, Aztec y más.

¿Puede IronBarcode generar códigos de barras en diferentes formatos de imagen?

Sí, IronBarcode puede generar códigos de barras en formatos PNG, JPEG, BMP, TIFF, PDF y HTML utilizando los métodos SaveAsPng, SaveAsJpeg, SaveAsTiff, SaveAsPdf y SaveAsHtmlFile.

¿ IronBarcode es compatible con .NET 10?

Sí, IronBarcode es totalmente compatible con .NET 10, .NET 8, .NET 6, .NET Core, .NET Standard y .NET Framework, lo que le permite integrar la generación de códigos de barras en aplicaciones multiplataforma.

¿Cómo personalizar la apariencia de un código de barras usando IronBarcode?

IronBarcode proporciona una API fluida en la clase GeneratedBarcode. Encadena métodos como ResizeTo(), SetMargins(), ChangeBarCodeColor(), AddAnnotationTextAboveBarcode() y AddBarcodeValueTextBelowBarcode() para personalizar la apariencia. Llama siempre a Verify() después de aplicar estilo para confirmar que el código de barras sigue siendo escaneable.

¿Es compatible IronBarcode con la lectura y el escaneado de códigos de barras?

Sí, IronBarcode admite la lectura y el escaneo de códigos de barras de imágenes, archivos PDF y transmisiones mediante la clase BarcodeReader y sus métodos Read.

¿Es posible generar códigos de barras en masa utilizando IronBarcode?

Sí, IronBarcode admite la generación masiva. Recorra sus datos en un bucle, llame a BarcodeWriter.CreateBarcode() para cada elemento y aplique su cadena de estilo estándar. Reutilice los objetos de configuración fuera del bucle para mayor eficiencia.

¿Existe una versión de prueba de IronBarcode?

Sí, IronBarcode ofrece una licencia de prueba gratuita de 30 días. Visite ironsoftware.com/csharp/barcode/licensing/#trial-license para obtener una clave de prueba y usar todas las funciones sin marca de agua durante el periodo de evaluación.

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