Cómo Generar Códigos QR y Códigos de Barras en C# para .NET 5 usando Iron Barcode

Códigos de barras y QR en aplicaciones C# y VB.NET

This article was translated from English: Does it need improvement?
Translated
View the article in English

Leer y escribir códigos de barras en C# y todos los demás lenguajes .NET es un proceso sencillo con nuestra biblioteca de software IronBarcode.

Instalar IronBarcode

El primer paso en el camino será instalar IronBarcode, lo cual se puede hacer descargándolo desde NuGet o descargando el DLL.

Para instalar el paquete NuGet de IronBarcode, puedes usar el Gestor de paquetes NuGet para Visual Studio:

Install-Package BarCode

Alternativamente, también puedes instalarlo con la CLI de dotnet:

dotnet add package IronBarCode

Lectura de un código de barras o código QR

Leer un código de barras solo requiere una línea de código con IronBarcode.

:path=/static-assets/barcode/content-code-examples/get-started/get-started-1.cs
using IronBarCode;

BarcodeResults results = BarcodeReader.Read("QuickStart.jpg");
if (results != null)
{
    foreach (BarcodeResult result in results)
    {
        Console.WriteLine(result.Text);
    }
}
$vbLabelText   $csharpLabel

Con esta única línea de código, tienes la capacidad de detectar y escanear todos los tipos de códigos de barras del documento de entrada con un rendimiento excepcional: ¡todo lo que necesitas en un solo paso! Este método admite una amplia gama de formatos de imagen, como JPEG, PNG y BMP, así como PDF y formatos de varias tramas como GIF y TIFF. Para un rendimiento mejorado, hay opciones de configuración personalizables disponibles.

Para mejorar la velocidad de lectura, puedes crear un objeto BarcodeReaderOptions con la configuración Speed configurada para un mejor rendimiento. El valor predeterminado es Balanced, pero la opción Faster está disponible para omitir ciertas comprobaciones.

:path=/static-assets/barcode/content-code-examples/get-started/get-started-2.cs
using IronBarCode;

BarcodeReaderOptions myOptionsExample = new BarcodeReaderOptions()
{
    ExpectMultipleBarcodes = false,
    ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128,
    CropArea = new System.Drawing.Rectangle(100, 200, 300, 400),
};

BarcodeResults result = BarcodeReader.Read("QuickStart.jpg", myOptionsExample);
if (result != null)
{
    Console.WriteLine(result.First().Text);
}
$vbLabelText   $csharpLabel

También puedes configurar el ScanMode a OnlyBasicScan para optimizar el proceso de lectura.

:path=/static-assets/barcode/content-code-examples/get-started/get-started-3.cs
using IronBarCode;

BarcodeResults results = BarcodeReader.Read("MultipleBarcodes.png");

// Loop through the results
foreach (BarcodeResult result in results)
{
    string value = result.Value;
    Bitmap img = result.BarcodeImage;
    BarcodeEncoding barcodeType = result.BarcodeType;
    byte[] binary = result.BinaryValue;
    Console.WriteLine(result.Value);
}
$vbLabelText   $csharpLabel

Otras configuraciones incluyen especificar los formatos de códigos de barras que se deben escanear, lo que puede ayudar a acelerar el procesamiento al reducir escaneos innecesarios.

:path=/static-assets/barcode/content-code-examples/get-started/get-started-4.cs
using IronBarCode;

BarcodeResults pagedResults = BarcodeReader.Read("MultipleBarcodes.pdf");

// Loop through the results
foreach (BarcodeResult result in pagedResults)
{
    int pageNumber = result.PageNumber;
    string value = result.Value;
    Bitmap img = result.BarcodeImage;
    BarcodeEncoding barcodeType = result.BarcodeType;
    byte[] binary = result.BinaryValue;
    Console.WriteLine(result.Value);
}

// or from a multi-page  TIFF scan with image correction:
BarcodeResults multiFrameResults = BarcodeReader.Read(inputImage: "Multiframe.tiff", new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Detailed,
    ExpectMultipleBarcodes = true,
    ExpectBarcodeTypes = BarcodeEncoding.Code128,
    Multithreaded = false,
    RemoveFalsePositive = false,
    ImageFilters = null
});
$vbLabelText   $csharpLabel

Escritura de códigos de barras

Para escribir códigos de barras usando IronBarcode, utilizamos la clase BarcodeWriter.

:path=/static-assets/barcode/content-code-examples/get-started/get-started-5.cs
using IronBarCode;

GeneratedBarcode myBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode", BarcodeEncoding.Code128);
myBarcode.SaveAsImage("myBarcode.png");
$vbLabelText   $csharpLabel

Estilizar códigos de barras

IronBarcode ofrece varias opciones para manipular la representación visual de un código de barras.

:path=/static-assets/barcode/content-code-examples/get-started/get-started-7.cs
using IronBarCode;

GeneratedBarcode myBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode", BarcodeEncoding.Code128);
myBarcode.AddAnnotationTextAboveBarcode("Product URL:");
myBarcode.AddBarcodeValueTextBelowBarcode();
myBarcode.SetMargins(100);
myBarcode.ChangeBarCodeColor(IronSoftware.Drawing.Color.Purple);

// All major image formats supported as well as PDF and HTML
myBarcode.SaveAsPng("myBarcode.png");
$vbLabelText   $csharpLabel

Exportar códigos de barras como HTML

IronBarcode puede exportar códigos de barras como documentos HTML o como parte de contenido HTML.

:path=/static-assets/barcode/content-code-examples/get-started/get-started-8.cs
using IronBarCode;

QRCodeWriter.CreateQrCode("https://ironsoftware.com", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium).SaveAsPdf("MyQR.pdf");
$vbLabelText   $csharpLabel

Generación de códigos QR

Para los códigos QR, utiliza la clase QRCodeWriter, que ofrece configuraciones adicionales para características específicas de QR, como la corrección de errores.

:path=/static-assets/barcode/content-code-examples/get-started/get-started-9.cs
using IronBarCode;
using IronSoftware.Drawing;

QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");
GeneratedBarcode myQRCodeWithLogo = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/csharp/barcode/", qrCodeLogo);
myQRCodeWithLogo.ChangeBarCodeColor(Color.DarkGreen).SaveAsPdf("MyQRWithLogo.pdf");
$vbLabelText   $csharpLabel

Formatos de códigos de barras compatibles

IronBarcode admite una amplia variedad de formatos de códigos de barras comúnmente utilizados tanto para lectura como para escritura:

  • Códigos QR, Micro QR y Micro QR Rectangular (rMQR).
  • Otros códigos de barras bidimensionales como Aztec, Data Matrix, MaxiCode y PDF417.
  • Códigos de barras lineales apilados como Databar.
  • Formatos de códigos de barras unidimensionales convencionales como UPC-A, UPC-E, EAN-8, EAN-13, Codabar, ITF, MSI y Plessey.

¿Por qué elegir IronBarcode?

IronBarcode ofrece una API amigable y fácil de usar para desarrolladores, para leer y escribir códigos de barras para .NET, que optimiza para precisión, precisión y velocidad en casos de uso del mundo real.

La clase BarcodeWriter, por ejemplo, valida y corrige automáticamente 'checksums' en códigos de barras UPCA y UPCE, y maneja restricciones de formato numérico. IronBarcode asiste a los desarrolladores a elegir el formato de código de barras más adecuado para sus datos.

La biblioteca es robusta, con técnicas de preprocesamiento de imágenes como rotación automática y eliminación de ruido de la imagen para maximizar las tasas de éxito de detección de códigos de barras.

Avanzando

Para sacar el máximo provecho de IronBarcode, te animamos a leer los tutoriales dentro de esta sección de documentación, y a visitarnos en GitHub.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más
¿Listo para empezar?
Nuget Descargas 2,035,202 | Versión: 2025.12 recién lanzado