Códigos de barras y QR en aplicaciones C# y VB.NET
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.csusing 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 IfCon 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.csusing 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 IfTambié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.csusing 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);
}Imports IronBarCode
Private results As BarcodeResults = BarcodeReader.Read("MultipleBarcodes.png")
' Loop through the results
For Each result As BarcodeResult In results
Dim value As String = result.Value
Dim img As Bitmap = result.BarcodeImage
Dim barcodeType As BarcodeEncoding = result.BarcodeType
Dim binary() As Byte = result.BinaryValue
Console.WriteLine(result.Value)
Next resultOtras 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.csusing 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
});Imports IronBarCode
Private pagedResults As BarcodeResults = BarcodeReader.Read("MultipleBarcodes.pdf")
' Loop through the results
For Each result As BarcodeResult In pagedResults
Dim pageNumber As Integer = result.PageNumber
Dim value As String = result.Value
Dim img As Bitmap = result.BarcodeImage
Dim barcodeType As BarcodeEncoding = result.BarcodeType
Dim binary() As Byte = result.BinaryValue
Console.WriteLine(result.Value)
Next result
' or from a multi-page TIFF scan with image correction:
Dim multiFrameResults As BarcodeResults = BarcodeReader.Read(inputImage:= "Multiframe.tiff", New BarcodeReaderOptions With {
.Speed = ReadingSpeed.Detailed,
.ExpectMultipleBarcodes = True,
.ExpectBarcodeTypes = BarcodeEncoding.Code128,
.Multithreaded = False,
.RemoveFalsePositive = False,
.ImageFilters = Nothing
})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.csusing 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")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.csusing 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
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.csusing IronBarCode;
QRCodeWriter.CreateQrCode("https://ironsoftware.com", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium).SaveAsPdf("MyQR.pdf");Imports IronBarCode
QRCodeWriter.CreateQrCode("https://ironsoftware.com", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium).SaveAsPdf("MyQR.pdf")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.csusing 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ó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.






