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 en todos los demás lenguajes .NET es un proceso sencillo con nuestra biblioteca de software IronBarcode.

Instalar IronBarcode

El primer paso en el proceso será instalar IronBarcode, lo cual se puede hacer descargándolo desde NuGet o por descargar la DLL.

Para instalar el paquete NuGet de IronBarcode, puedes usar el Administrador de Paquetes NuGet para Visual Studio:

Install-Package BarCode

Alternativamente, también podrías instalarlo con la CLI de dotnet:

dotnet add package BarCode

Puede encontrar más información sobre el paquete NuGet en el Sitio web de NuGet.

Lectura de un código de barras o 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);
    }
}
Imports IronBarCode

Private results As BarcodeResults = BarcodeReader.Read("QuickStart.jpg")
If results IsNot Nothing Then
	For Each result As BarcodeResult In results
		Console.WriteLine(result.Text)
	Next result
End If
VB   C#

Con esta línea de código, tienes la capacidad de detectar y escanear todo tipo 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, incluidos imágenes como JPEG, PNG y BMP, así como archivos PDF y formatos de múltiples fotogramas como GIF y TIFF. Para aquellos que necesitan aún más velocidad, un uso optimizado de la memoria o una mayor precisión en la lectura, hay opciones de configuración personalizables disponibles para ajustar el rendimiento a sus necesidades específicas.

Para mejorar la velocidad de lectura, puede añadir un objeto BarcodeReaderOptions con la configuración de Speed establecida. De forma predeterminada, está configurado en Balanced, pero también hay una opción Faster que omite ciertas verificaciones de lectura de códigos de barras, como comprobar colores invertidos o rotación del código de barras.

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

BarcodeReaderOptions myOptionsExample = new BarcodeReaderOptions()
{
    Speed = ReadingSpeed.Faster
};

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

Private myOptionsExample As New BarcodeReaderOptions() With {.Speed = ReadingSpeed.Faster}

Private result As BarcodeResults = BarcodeReader.Read("QuickStart.jpg", myOptionsExample)
If result IsNot Nothing Then
	Console.WriteLine(result.First().Text)
End If
VB   C#

También podrías establecer el ScanMode en OnlyBasicScan para omitir que nuestro algoritmo de detección de código de barras escanee el documento.

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

BarcodeReaderOptions myOptionsExample = new BarcodeReaderOptions()
{
    ScanMode = BarcodeScanMode.OnlyBasicScan
};

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

Private myOptionsExample As New BarcodeReaderOptions() With {.ScanMode = BarcodeScanMode.OnlyBasicScan}

Private result As BarcodeResults = BarcodeReader.Read("QuickStart.jpg", myOptionsExample)
If result IsNot Nothing Then
	Console.WriteLine(result.First().Text)
End If
VB   C#

Otras configuraciones que puedes probar incluyen especificar los formatos de código de barras para escanear, de modo que IronBarcode no tenga que escanear todos los tipos de códigos de barras, y recortar regiones específicas de la imagen, para que IronBarcode tenga menos datos de imagen que procesar. También hay una opción para esperar múltiples códigos de barras, de modo que IronBarcode puede omitir ciertos procesos para detectar y decodificar múltiples códigos de barras si solo se espera uno.

:path=/static-assets/barcode/content-code-examples/get-started/get-started-4.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);
}
Imports IronBarCode

Private myOptionsExample As New BarcodeReaderOptions() With {
	.ExpectMultipleBarcodes = False,
	.ExpectBarcodeTypes = BarcodeEncoding.QRCode Or BarcodeEncoding.Code128,
	.CropArea = New System.Drawing.Rectangle(100, 200, 300, 400)
}

Private result As BarcodeResults = BarcodeReader.Read("QuickStart.jpg", myOptionsExample)
If result IsNot Nothing Then
	Console.WriteLine(result.First().Text)
End If
VB   C#

Escribir códigos de barras

Para escribir códigos de barras utilizando IronBarcode, usamos la clase BarcodeWriter. Con BarcodeWriter, escribir códigos de barras es otra simple línea de código: solo ingresa los datos de entrada y el formato del código de barras, y listo.! Luego, puede guardar los datos de imagen del código de barras en memoria o como un archivo.

: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");
Imports IronBarCode

Private myBarcode As GeneratedBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode", BarcodeEncoding.Code128)
myBarcode.SaveAsImage("myBarcode.png")
VB   C#

Códigos de barras

IronBarcode ofrece varias opciones para manipular la representación visual de un código de barras. Las características compatibles para el estilo de códigos de barras incluyen el cambio de tamaño, el establecimiento de márgenes en la imagen de salida, el cambio de los colores de primer plano y de fondo, y la adición de anotaciones.

: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");
Imports IronBarCode

Private myBarcode As GeneratedBarcode = 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")
VB   C#

Exportar códigos de barras como HTML

También existe la práctica función de exportar HTML desde un código de barras generado. Puede exportar un código de barras como documento HTML independiente sin activos externos, como etiqueta HTML independiente o como URI de datos.

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

myBarcode = BarcodeWriter.CreateBarcode("12345", BarcodeWriterEncoding.EAN8);
myBarcode.SaveAsHtmlFile("myBarcode.html");
Imports IronBarcode

myBarcode = BarcodeWriter.CreateBarcode("12345", BarcodeWriterEncoding.EAN8)
myBarcode.SaveAsHtmlFile("myBarcode.html")
VB   C#

Generación de códigos QR

Al generar códigos QR usando IronBarcode, podemos optar por usar la clase QRCodeWriter en su lugar. Esta clase ofrece más configuraciones de personalización exclusivas para los códigos QR, como configurar el nivel de corrección de errores y añadir una imagen en el centro del QR.

: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");
Imports IronBarCode
Imports IronSoftware.Drawing

Private qrCodeLogo As New QRCodeLogo("visual-studio-logo.png")
Private myQRCodeWithLogo As GeneratedBarcode = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/csharp/barcode/", qrCodeLogo)
myQRCodeWithLogo.ChangeBarCodeColor(Color.DarkGreen).SaveAsPdf("MyQRWithLogo.pdf")
VB   C#

Formatos de códigos de barras compatibles

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

  • QR, Micro QR y Micro QR Rectangular(rMQR)** códigos.
  • Otros códigos de barras bidimensionales como Aztec, Data Matrix, MaxiCode y PDF417.
  • Códigos de barras lineales apilados como Databar.
  • Formatos convencionales de código de barras unidimensional 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 que los desarrolladores lean y escriban códigos de barras para .NET, optimizando la exactitud, precisión y velocidad en casos de uso en el mundo real.

La clase BarcodeWriter, por ejemplo, validará y corregirá automáticamente los 'checksums' en los códigos de barras UPCA y UPCE. También pondrá a cero los números que sean demasiado cortos para un formato numérico específico. Si tus datos no son apropiados para el formato de datos especificado, IronBarcode indicará al desarrollador un formato de código de barras más adecuado que podrían utilizar.

IronBarcode destaca tanto en las áreas de lectura de códigos de barras de documentos como en la lectura de códigos de barras de imágenes tomadas en el mundo real. La biblioteca incluye una serie de técnicas de preprocesamiento de imágenes para maximizar la probabilidad de que se lean los códigos de barras, como la rotación automática y la reducción de ruido en las imágenes.

Avanzar

Para aprovechar al máximo IronBarcode, le recomendamos que lea los tutoriales en esta sección de documentación y que nos visite enGitHub.