Códigos de barras y QR en aplicaciones C# y VB.NET
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
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
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
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
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")
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")
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")
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")
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.