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 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 .
Tras 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 deba 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");
Imports IronBarCode
' Generate a simple barcode and encode the string data
Dim barcode = BarcodeWriter.CreateBarcode("SKU-78432-X", BarcodeWriterEncoding.Code128)
' Save the barcode as a PNG image file
barcode.SaveAsPng("product-barcode.png")
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 estilización y opciones de exportación para guardar en PNG, JPEG, BMP, TIFF, PDF o HTML.
Resultado
Generador de código de barras C# con IronBarcode: Imagen 2 - BarCode Output
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 escaneado correcto en instalaciones de envío y entornos minoristas de todo el mundo. Cuando se utiliza 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 aplicaciones en las que necesite servir la imagen del código de barras directamente desde un endpoint web, puede utilizar ToStream() en lugar de guardar en disco. El flujo puede escribirse directamente en un HttpResponse en ASP.NET Core o devolverse como un FileStreamResult desde una acción de 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");
Imports IronBarCode
' Create a QR code and encode URL data
Dim qrCode = BarcodeWriter.CreateBarcode(
"https://ironsoftware.com/csharp/barcode/",
BarcodeWriterEncoding.QRCode
)
qrCode.SaveAsPng("website-qr.png")
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# 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");
Imports IronBarCode
' Generate an EAN-13 barcode compatible with UPC for retail print applications
Dim eanBarcode = BarcodeWriter.CreateBarcode("5901234123457", BarcodeWriterEncoding.EAN13)
eanBarcode.SaveAsPng("retail-product.png")
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# Source Code Using IronBarcode: Imagen 4 - EAN-13 Barcode Output
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 estilización:
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");
Imports IronBarCode
Imports IronSoftware.Drawing
' Create a styled barcode with advanced styling options
Dim 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
Dim isReadable As Boolean = styledBarcode.Verify()
Console.WriteLine($"Barcode verification: {(If(isReadable, "PASS", "FAIL"))}")
styledBarcode.SaveAsPng("styled-invoice-barcode.png")
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 escaneado correcto en la producción tras aplicar colores no estándar o cambiar el tamaño a dimensiones reducidas.
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. Llame siempre a 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 varios BarCodes con un estilo coherente en todo un catálogo, cree un método de ayuda 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();
Imports IronBarCode
Dim 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
Dim barcodeStream As System.IO.Stream = barcode.ToStream()
Dim bitmapImage As System.Drawing.Bitmap = barcode.ToBitmap()
El método ToStream() devuelve datos de códigos de barras compatibles con las API web ASP.NET Core y las aplicaciones Blazor. El método ToBitmap() proporciona una referencia System.Drawing.Bitmap para una mayor manipulación de la imagen. 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# con IronBarcode: Imagen 6 - HTML Barcode Output
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:
| 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 Docker de IronBarcode proporciona detalles sobre las bibliotecas del sistema necesarias para las implementaciones en contenedores. Cuando se ejecuta en Linux, normalmente necesita libgdiplus y libc6-dev instalados en su imagen 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 las dependencias nativas en el paquete de implementación y configurar los límites de memoria para gestionar las cargas de trabajo de renderizado 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 añadir al menos 10 píxeles de relleno en cada lado para la visualización digital, y al menos 2,5 mm para la 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 los colores, aplicar gradientes, o cambiar el tamaño a una dimensión no estándar, llame 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 disposición de .NET. El GeneratedBarcode y cualquier flujo devuelto por el ToStream() implementa el IDisposable. Envuélvalas en sentencias using para liberar rápidamente los recursos no gestionados, especialmente en aplicaciones web de alto rendimiento en las que la generación de códigos de barras se produce por petición.
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 las tres cosas 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:
- Referencia completa de la API de IronBarcode -- documentación completa de métodos para
BarcodeWriter,GeneratedBarcodey todas las enumeraciones - Tutorial del lector de códigos de barras IronBarcode : lectura y decodificación de códigos de barras desde imágenes, archivos PDF y transmisiones
- Ejemplo de generación de códigos de barras por lotes : patrones de generación de gran volumen para flujos de trabajo de impresión y envío de etiquetas
- Licencias y precios de IronBarcode -- opciones a partir de $799
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.


