Saltar al pie de página
USO DE IRONBARCODE

sDK de escáner de código de barras .NET MAUI: Cree un escáner multiplataforma en minutos

Todos conocemos la promesa de .NET MAUI: escribir código una vez e implantarlo en todas partes. Pero esa experiencia "fluida" suele toparse con un obstáculo cuando es necesario integrar funciones de hardware, en concreto, el escaneado de códigos de barras.

Si alguna vez has intentado conectar manualmente las API nativas de las cámaras, sabrás que puede convertirse rápidamente en una madriguera de configuraciones específicas de cada plataforma. No tiene por qué ser tan difícil. En este tutorial, nos saltaremos las horas de configuración y utilizaremos la biblioteca IronBarcode para crear un escáner multiplataforma que funcione en tan solo unos minutos.

¿Listo para comenzar? Obtenga su versión de prueba gratuita y codifiquemos.

NuGet Instalar con NuGet

PM >  Install-Package BarCode

Echa un vistazo a IronBarcode en NuGet para una instalación rápida. Con más de 10 millones de descargas, está transformando el desarrollo de PDF con C#. También puede descargar el DLL.

¿Cómo configurar un SDK de escáner de código de barras en .NET MAUI?

Para configurar un SDK de escáner de código de barras .NET MAUI es necesario crear un nuevo proyecto, instalar el paquete NuGet y configurar los permisos de la plataforma. Todo el proceso de configuración se realiza en unos minutos en Visual Studio.

Crear el proyecto .NET MAUI

Abre Visual Studio y crea un nuevo proyecto .NET MAUI App. Nombra tu proyecto MAUI con algo descriptivo como "BarcodeScanner" y selecciona .NET 8 o posterior como marco de destino. Visual Studio generará la estructura de proyecto predeterminada con carpetas específicas de la plataforma para Android e iOS.

Instalar IronBarcode

Instale el paquete NuGet de IronBarcode mediante la consola del gestor de paquetes:

Install-Package BarCode

Este comando descarga e instala el SDK del escáner de código de barras junto con todas las dependencias necesarias para su aplicación .NET MAUI.

Configurar permisos de plataforma

Incluso cuando se escanea desde archivos de imagen en lugar de una cámara en vivo, es una buena práctica para configurar los siguientes permisos para su aplicación .NET MAUI escáner de código de barras.

Para Android, añada lo siguiente a Platforms/Android/AndroidManifest.xml:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
XML

Para iOS, añada estas entradas a Platforms/iOS/Info.plist:

<key>NSPhotoLibraryUsageDescription</key>
<string>Access needed to select barcode images for scanning.</string>
<key>NSCameraUsageDescription</key>
<string>Camera permission for barcode scanning.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Access needed to select barcode images for scanning.</string>
<key>NSCameraUsageDescription</key>
<string>Camera permission for barcode scanning.</string>
XML

Iniciar el SDK

Configure IronBarcode en su archivo MauiProgram.cs:

public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder();
        builder
            .UseMauiApp<App>()
            .ConfigureFonts(fonts =>
            {
                fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
            });
        return builder.Build();
    }
}
public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder();
        builder
            .UseMauiApp<App>()
            .ConfigureFonts(fonts =>
            {
                fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
            });
        return builder.Build();
    }
}
$vbLabelText   $csharpLabel

Establezca su clave de licencia en el código de inicialización de su aplicación para habilitar la funcionalidad completa. IronBarcode ofrece una licencia de prueba gratuita para desarrollo y pruebas.

¿Cómo leer códigos de barras de archivos de imagen?

La funcionalidad principal de cualquier escáner de código de barras MAUI es la capacidad de leer códigos de barras de imágenes seleccionadas. IronBarcode lo hace notablemente sencillo con su clase BarcodeReader.

Diseñar la interfaz de usuario

Crear una interfaz limpia en MainPage.xaml que permita a los usuarios seleccionar un archivo de imagen y ver los datos del código de barras escaneado:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="BarcodeScanner.MainPage">
    <VerticalStackLayout Padding="20" Spacing="15">
        <Label Text=".NET MAUI Barcode Scanner" FontSize="24" HorizontalOptions="Center"/>
        <Button Text="Select Image to Scan" Clicked="OnSelectImageClicked"/>
        <Image x:Name="SelectedImageView" HeightRequest="200"/>
        <Label x:Name="ResultLabel" FontSize="16"/>
    </VerticalStackLayout>
</ContentPage>
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="BarcodeScanner.MainPage">
    <VerticalStackLayout Padding="20" Spacing="15">
        <Label Text=".NET MAUI Barcode Scanner" FontSize="24" HorizontalOptions="Center"/>
        <Button Text="Select Image to Scan" Clicked="OnSelectImageClicked"/>
        <Image x:Name="SelectedImageView" HeightRequest="200"/>
        <Label x:Name="ResultLabel" FontSize="16"/>
    </VerticalStackLayout>
</ContentPage>
XML

Implementar el escaneado de códigos de barras

Añada la lógica de exploración a MainPage.xaml.cs. Este código gestiona la selección de imágenes y la detección de códigos de barras:

using IronBarCode;
public partial class MainPage : ContentPage
{
    public MainPage()
    {
        InitializeComponent();
    }
    private async void OnSelectImageClicked(object sender, EventArgs e)
    {
        var result = await FilePicker.PickAsync(new PickOptions
        {
            FileTypes = FilePickerFileType.Images,
            PickerTitle = "Select a barcode image"
        });
        if (result != null)
        {
            // Display the selected image
            SelectedImageView.Source = ImageSource.FromFile(result.FullPath);
            // Read barcodes from the image file
            var barcodes = BarcodeReader.Read(result.FullPath);
            if (barcodes.Any())
            {
                ResultLabel.Text = $"Found: {barcodes.First().Value}";
            }
            else
            {
                ResultLabel.Text = "No barcodes detected in selected image.";
            }
        }
    }
}
using IronBarCode;
public partial class MainPage : ContentPage
{
    public MainPage()
    {
        InitializeComponent();
    }
    private async void OnSelectImageClicked(object sender, EventArgs e)
    {
        var result = await FilePicker.PickAsync(new PickOptions
        {
            FileTypes = FilePickerFileType.Images,
            PickerTitle = "Select a barcode image"
        });
        if (result != null)
        {
            // Display the selected image
            SelectedImageView.Source = ImageSource.FromFile(result.FullPath);
            // Read barcodes from the image file
            var barcodes = BarcodeReader.Read(result.FullPath);
            if (barcodes.Any())
            {
                ResultLabel.Text = $"Found: {barcodes.First().Value}";
            }
            else
            {
                ResultLabel.Text = "No barcodes detected in selected image.";
            }
        }
    }
}
$vbLabelText   $csharpLabel

Resultado

.NET MAUI Barcode Scanner SDK: Cree un escáner multiplataforma en cuestión de minutos: Imagen 1 - Código de barras escaneado

El método BarcodeReader.Read() analiza la imagen seleccionada y devuelve todos los códigos de barras detectados. IronBarcode reconoce automáticamente múltiples simbologías de códigos de barras, incluidos códigos QR, Código 128, Código 39, EAN-13 y muchos otros formatos.

¿Cómo escanear códigos de barras de documentos PDF?

Una potente función que diferencia a IronBarcode es la lectura de códigos de barras directamente desde archivos PDF. Esto es esencial para las aplicaciones .NET MAUI que manejan flujos de trabajo de documentos.

private async void OnSelectPdfClicked(object sender, EventArgs e)
{
    var result = await FilePicker.PickAsync(new PickOptions
    {
        PickerTitle = "Select a PDF with barcodes"
    });
    if (result != null)
    {
        // Read barcodes from PDF document
        var barcodes = BarcodeReader.ReadPdf(result.FullPath);
        string output = "";
        foreach (var barcode in barcodes)
        {
            output += $"Page {barcode.PageNumber}: {barcode.Value}\n";
        }
        await DisplayAlert("Scan Results", output, "OK");
    }
}
private async void OnSelectPdfClicked(object sender, EventArgs e)
{
    var result = await FilePicker.PickAsync(new PickOptions
    {
        PickerTitle = "Select a PDF with barcodes"
    });
    if (result != null)
    {
        // Read barcodes from PDF document
        var barcodes = BarcodeReader.ReadPdf(result.FullPath);
        string output = "";
        foreach (var barcode in barcodes)
        {
            output += $"Page {barcode.PageNumber}: {barcode.Value}\n";
        }
        await DisplayAlert("Scan Results", output, "OK");
    }
}
$vbLabelText   $csharpLabel

Resultado

.NET MAUI Barcode Scanner SDK: Cree un escáner multiplataforma en cuestión de minutos: Imagen 2 - Salida para escanear un PDF con códigos QR en su interior

El método ReadPdf() escanea todas las páginas de un PDF y devuelve los datos del código de barras junto con los números de página, lo que facilita el procesamiento de documentos que contienen varios códigos de barras.

¿Cómo gestionar varios códigos de barras y códigos QR?

Para situaciones que requieran la detección de varios códigos de barras a partir de un único escaneado o el filtrado de formatos de código de barras específicos, configure la clase BarcodeReaderOptions:

var options = new BarcodeReaderOptions
{
    ExpectMultipleBarcodes = true,
    ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128,
    Speed = ReadingSpeed.Balanced
};
var barcodes = BarcodeReader.Read(imagePath, options);
foreach (var barcode in barcodes)
{
    Console.WriteLine($"Type: {barcode.BarcodeType}, Value: {barcode.Value}");
}
var options = new BarcodeReaderOptions
{
    ExpectMultipleBarcodes = true,
    ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128,
    Speed = ReadingSpeed.Balanced
};
var barcodes = BarcodeReader.Read(imagePath, options);
foreach (var barcode in barcodes)
{
    Console.WriteLine($"Type: {barcode.BarcodeType}, Value: {barcode.Value}");
}
$vbLabelText   $csharpLabel

Esta configuración permite escanear varios códigos de barras y limitar la detección a simbologías de códigos de barras específicas para mejorar el rendimiento. La propiedad Velocidad te permite equilibrar la velocidad de escaneado y la precisión en función de los requisitos de tu aplicación.

¿Cuáles son las principales ventajas de este SDK para escáneres de códigos de barras?

IronBarcode ofrece varias ventajas para los proyectos de escaneado de códigos de barras .NET MAUI:

  • Soporte multiplataforma: Despliegue en plataformas Android, iOS y Windows desde una única base de código
  • Múltiples fuentes de entrada: Escanee códigos de barras de imágenes, flujos de memoria y archivos PDF
  • Amplia compatibilidad de formatos: Decodifique códigos de barras de docenas de simbologías de códigos de barras 1D y 2D
  • API sencilla: Integre el escaneado rápido de códigos de barras con unas pocas líneas de código
  • Sin dependencias externas: La biblioteca .NET funciona de forma independiente sin necesidad de SDK nativos adicionales

Conclusión

La creación de un escáner de códigos de barras .NET MAUI con IronBarcode demuestra lo sencillo que es integrar la funcionalidad de escaneado de códigos de barras en aplicaciones multiplataforma. Desde la instalación del paquete NuGet hasta la lectura de códigos de barras de imágenes y PDF, todo el proceso requiere una configuración y un código mínimos.

La combinación de las capacidades de marco multiplataforma de .NET MAUI y el sólido SDK de escaneado de IronBarcode permite a los desarrolladores crear potentes aplicaciones de escaneado de códigos de barras que se ejecutan sin problemas en dispositivos móviles y de escritorio.

¿Listo para añadir la lectura de códigos de barras a su proyecto .NET MAUI? Inicie su prueba gratuita o explore las opciones de licencia para la implementación en producción.

Preguntas Frecuentes

¿Qué es .NET MAUI y cómo se relaciona con la lectura de códigos de barras?

.NET MAUI es un marco que permite a los desarrolladores crear aplicaciones multiplataforma con una única base de código. Integrar el escaneado de códigos de barras en una aplicación .NET MAUI puede resultar complicado, pero IronBarcode simplifica este proceso proporcionando herramientas sólidas para el escaneado y la lectura de códigos de barras en diferentes plataformas.

¿Cómo puede IronBarcode ayudar en el desarrollo de un escáner de código de barras para aplicaciones .NET MAUI?

IronBarcode ofrece una completa biblioteca que permite escanear y generar códigos de barras. Agiliza el proceso de creación de un escáner de códigos de barras para aplicaciones .NET MAUI ofreciendo métodos y funciones fáciles de usar para leer códigos de barras de imágenes y PDF.

¿Es IronBarcode compatible con el desarrollo multiplataforma en .NET MAUI?

Sí, IronBarcode es totalmente compatible con .NET MAUI, lo que permite a los desarrolladores integrar funciones de lectura de códigos de barras en aplicaciones que se ejecutan en varias plataformas desde una única base de código.

¿Qué tipos de códigos de barras se pueden escanear con IronBarcode en una aplicación .NET MAUI?

IronBarcode soporta una amplia gama de formatos de código de barras, incluyendo códigos QR, Código 128, UPC, EAN, y más, haciéndolo versátil para varias aplicaciones en .NET MAUI.

¿Cómo simplifica IronBarcode la lectura de códigos de barras en .NET MAUI?

IronBarcode simplifica el escaneado de códigos de barras proporcionando una API unificada que gestiona la detección y lectura de códigos de barras con un código mínimo, garantizando una integración sin problemas en proyectos .NET MAUI.

¿Cuáles son las ventajas de utilizar IronBarcode para la lectura de códigos de barras PDF en aplicaciones MAUI?

IronBarcode ofrece funciones avanzadas para extraer códigos de barras de documentos PDF, lo que permite a los desarrolladores .NET MAUI añadir fácilmente funciones de lectura de códigos de barras PDF a sus aplicaciones multiplataforma.

¿Qué pasos hay que seguir para configurar IronBarcode en un proyecto MAUI .NET?

La configuración de IronBarcode en un proyecto .NET MAUI implica la instalación del paquete NuGet de IronBarcode, la importación de los espacios de nombres necesarios y la utilización de los métodos proporcionados para implementar la funcionalidad de lectura y lectura de códigos de barras.

¿Puede IronBarcode gestionar la lectura de códigos de barras basados en imágenes en .NET MAUI?

Sí, IronBarcode puede escanear y leer eficazmente códigos de barras a partir de imágenes, lo que la convierte en una potente herramienta para desarrolladores que deseen implementar el escaneado de códigos de barras basado en imágenes en sus aplicaciones .NET MAUI.

¿Es IronBarcode adecuado para la lectura de códigos de barras en tiempo real en aplicaciones móviles?

IronBarcode está diseñado para gestionar eficazmente el escaneado de códigos de barras en tiempo real, por lo que es adecuado para aplicaciones móviles desarrolladas con .NET MAUI que requieren un procesamiento de datos de códigos de barras rápido y preciso.

Jordi Bardia
Ingeniero de Software
Jordi es más competente en Python, C# y C++. Cuando no está aprovechando sus habilidades en Iron Software, está programando juegos. Compartiendo responsabilidades para pruebas de productos, desarrollo de productos e investigación, Jordi agrega un valor inmenso a la mejora continua del producto. La experiencia variada lo mantiene ...
Leer más