Escáner de código de barras .NET MAUI

Introducción

.NET MAUI (Interfaz de usuario de aplicaciones multiplataforma .NET) es un framework multiplataforma que puede ayudar a crear aplicaciones multiplataforma en una única base de código con mayor facilidad. Por ejemplo, puede crear fácilmente aplicaciones Microsoft Windows, IOS y Android en un solo proyecto. Lo que la diferencia de otras plataformas, frameworks y bibliotecas es la forma en que permite a la comunidad de desarrolladores utilizar los controles nativos en sus proyectos y les proporciona componentes adicionales. Como resultado, los desarrolladores pueden utilizar estos componentes y servicios prefabricados para construir las aplicaciones más rápidamente sin tener que escribir cada aspecto del código desde cero.

En este artículo, voy a explicar cómo podemos escanear un código QR o un código de barras en la aplicación .NET MAUI Windows.

IronBarcode: Biblioteca de códigos de barras C

IronBarcode es la librería .NET que ayuda a crear códigos de barras fácilmente en los programas. Proporciona un conjunto robusto y sencillo de APIs por defecto. La librería IronBarcode ofrece funcionalidad para generar y leer códigos QR u otros códigos de barras a nivel de objeto, por lo que puedes desarrollarlos de uno en uno llamando a sus métodos sin tener que preocuparte por los detalles de la creación de un objeto de código de barras y conocimientos previos. Además, no requiere la carga de dependencias externas para funcionar y puede descargarse fácilmente mediante NuGet Package Manager.

IronBarcode soporta múltiples QR y modernos formatos de código de barras como Code 39, Code 128, PDF417, y muchos más. También puede utilizar esta biblioteca .NET como lector de códigos QR, así como constructor. Descodifica los datos de entrada en texto legible para el ser humano. Puede obtener información de imágenes, secuencias, GIF y muchos más. Este artículo también explicará cómo podemos utilizar la biblioteca IronBarcode para leer y escanear códigos QR en aplicaciones .NET MAUI.

Pasos para leer y escanear código de barras en .NET MAUI App

Sigue los siguientes pasos para leer el código QR en la aplicación .NET MAUI.

Requisitos previos

  1. Visual Studio 2022
  2. Un proyecto .NET MAUI en ejecución en Visual Studio
  3. Internet estable para instalar la biblioteca IronBarcode para la lectura de códigos de barras

    Si cumple los requisitos anteriores, puede pasar al siguiente paso.

Instalar la librería IronBarcode

Podemos instalar la librería IronBarcode utilizando la consola de paquetes NuGet. Escribe el siguiente comando en la consola:

Install-Package BarCode

Este comando de consola descargará la última versión de la librería IronBarcode en el proyecto MAUI. Pero, por supuesto, siempre puede comprobar y buscar la última versión de la biblioteca de paquetes NuGet en la páginaSitio web de NuGet.

Frontend

Como primer paso, tenemos que crear el diseño front-end.

Crearemos un diseño que conste de dos botones, un área de texto y un cuadro de imagen. Un botón servirá para seleccionar el código de barras y otro para copiar el texto del código de barras. El cuadro Imagen mostrará la imagen seleccionada.

Sustituya el contenido del archivo MainPage.xaml por lo siguiente:

<?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="MAUI_Barcode.MainPage">

    <ScrollView>
        <VerticalStackLayout
            Spacing="25"
            Padding="30,0"
            VerticalOptions="Center">

            <Button
                x:Name="ImageSelect"
                Text="Select Barcode"
                SemanticProperties.Hint="Select Image"
                Clicked="SelectBarcode"
                HorizontalOptions="Center" />
            <Image
                x:Name="barcodeImage"
                SemanticProperties.Description="Selected Barcode"
                HeightRequest="200"
                HorizontalOptions="Center" />
            <Editor x:Name="outputText"
                Placeholder="Output text"
                HeightRequest="100"
                WidthRequest="500" />
            <Button
                x:Name="copyText"
                Text="Copy"
                SemanticProperties.Hint="Copy Text"
                WidthRequest="150"
                Clicked="CopyEditorText"
                HorizontalOptions="Center" />

        </VerticalStackLayout>
    </ScrollView>

</ContentPage>
XML

Todos los elementos están en pila vertical con la posición central. Puedes cambiarlo según tus preferencias.

Escaneado de códigos de barras con IronBarcode

Esta sección describirá el código para escanear códigos de barras utilizando la librería IronBarcode. En primer lugar, utilizaremos un FilePicker para seleccionar el archivo y especificar el tipo de archivo de la imagen. A continuación, utilizaremos la propiedad FullPath para recuperar la ruta del archivo de imagen y luego establecer la fuente de la caja de imagen al valor FullPath. Por último, utilizaremos el valor path en la función Read del BarcodeReader para recuperar el texto.

private async void SelectBarcode(object sender, EventArgs e)
{
    var images = await FilePicker.Default.PickAsync(new PickOptions
    {
    PickerTitle = "Pick image",
    FileTypes = FilePickerFileType.Images
    });
    var imageSource = images.FullPath.ToString();
    barcodeImage.Source = imageSource;
    var result = BarcodeReader.Read(imageSource).First().Text;
    outputText.Text = result;
}
private async void SelectBarcode(object sender, EventArgs e)
{
    var images = await FilePicker.Default.PickAsync(new PickOptions
    {
    PickerTitle = "Pick image",
    FileTypes = FilePickerFileType.Images
    });
    var imageSource = images.FullPath.ToString();
    barcodeImage.Source = imageSource;
    var result = BarcodeReader.Read(imageSource).First().Text;
    outputText.Text = result;
}
Private Async Sub SelectBarcode(ByVal sender As Object, ByVal e As EventArgs)
	Dim images = Await FilePicker.Default.PickAsync(New PickOptions With {
		.PickerTitle = "Pick image",
		.FileTypes = FilePickerFileType.Images
	})
	Dim imageSource = images.FullPath.ToString()
	barcodeImage.Source = imageSource
	Dim result = BarcodeReader.Read(imageSource).First().Text
	outputText.Text = result
End Sub
VB   C#

El código que se muestra a continuación se utilizará para copiar el texto del editor de texto y mostrar un mensaje de alerta al usuario de que el texto se ha copiado.

private async void CopyEditorText (object sender, EventArgs e)
{
    await Clipboard.SetTextAsync(outputText.Text);
    await DisplayAlert("Success", "Text is copied!", "OK");
}
private async void CopyEditorText (object sender, EventArgs e)
{
    await Clipboard.SetTextAsync(outputText.Text);
    await DisplayAlert("Success", "Text is copied!", "OK");
}
Private Async Sub CopyEditorText(ByVal sender As Object, ByVal e As EventArgs)
	Await Clipboard.SetTextAsync(outputText.Text)
	Await DisplayAlert("Success", "Text is copied!", "OK")
End Sub
VB   C#

Puedes conseguir este proyecto para leer y escanear código en GitHub().

Salida

Después de ejecutar el proyecto, verás la siguiente salida. La imagen no se muestra porque aún no está seleccionada.

.NET MAUI Barcode Scanner Tutorial Using IronBarcode - Figura 1: Salida cuando no hay ninguna imagen seleccionada

Salida cuando no hay ninguna imagen seleccionada

Cuando se selecciona el código de barras, se mostrará como en la siguiente captura de pantalla, y el texto de salida del código QR se mostrará en el editor.

.NET MAUI Barcode Scanner Tutorial Using IronBarcode - Figure 2: Salida después de seleccionar la imagen

Salida después de seleccionar la imagen

Al hacer clic en el botón Copiar, aparecerá la ventana de alerta mencionada anteriormente.

.NET MAUI Barcode Scanner Tutorial Using IronBarcode - Figura 3: Alerta de copia

Alerta de copia

Conclusión

En este artículo, se explicó cómo podemos leer códigos de barras en la aplicación .NET MAUI utilizando IronBarcode. IronBarcode es un producto completo con todas las herramientas necesarias que permiten realizar operaciones con códigos de barras. Como lector de códigos QR, IronBarcode funciona muy bien. Proporciona el resultado exacto esperado. Además, puede leer códigos de barras complejos. También puede crear y personalizar los códigos de barras utilizando diferentes fuentes. Obtenga más tutoriales sobre IronBarcode desde aquí enlace.

IronBarcode es gratuito para fines de desarrollo. Pero para uso comercial, tienes que comprar la licencia. Puede obtener la información relativa a la licencia utilizando lo siguienteenlace.