Cómo leer y escanear código de barras en C# usando NET MAUI

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

This article was translated from English: Does it need improvement?
Translated
View the article in English

Introducción

.NET MAUI (.NET Multi-platform App UI) es un marco multiplataforma para crear sin problemas aplicaciones multiplataforma en un solo código base. Por ejemplo, puedes crear fácilmente aplicaciones de Microsoft Windows, iOS y Android en un solo proyecto. Lo que lo separa de otras plataformas, marcos y bibliotecas es la forma en que permite que la comunidad de desarrolladores use los controles nativos en sus proyectos y les proporciona componentes adicionales. Como resultado, los desarrolladores pueden usar estos componentes y servicios predefinidos para construir las aplicaciones más rápidamente sin escribir cada aspecto del código desde cero.

En este artículo, explicaremos cómo integrar IronBarcode en una aplicación de Windows .NET MAUI para escanear un código de barras o código QR.

IronBarcode: Biblioteca de códigos de barras de C

Para leer códigos de barras en nuestra aplicación, utilizaremos la biblioteca .NET de IronBarcode. Proporciona una API robusta y simple para leer códigos de barras, permitiendo el desarrollo sin ningún problema o conocimiento del dominio de códigos de barras. Puede ser instalado fácilmente con el gestor de paquetes NuGet.

IronBarcode admite una multitud de formatos de códigos de barras para leer, incluyendo Code 39, Code 128, PDF417, entre muchos otros. Puedes leer desde una variedad de formatos de datos como archivos de imagen, flujos de memoria y PDFs.

Pasos para leer códigos de barras en una aplicación .NET MAUI

Sigue estos pasos para leer un código de barras en una aplicación .NET MAUI.

Prerrequisitos

  1. Visual Studio 2022
  2. Un proyecto .NET MAUI en Visual Studio

Instalar la biblioteca IronBarcode

Podemos instalar la biblioteca IronBarcode usando la Consola del Gestor de Paquetes de NuGet. Para abrir esta consola en Visual Studio, navega a Herramientas > Gestor de Paquetes NuGet > Consola del Gestor de Paquetes. Después, escribe el siguiente comando en la consola:

Install-Package BarCode

Este comando de consola descargará la última versión de la biblioteca IronBarcode en el proyecto MAUI. Alternativamente, también podrías buscar la última versión del paquete NuGet en el sitio web de NuGet.

Interfaz

El primer paso será crear el diseño de la interfaz frontal. Para esto, crearemos un diseño que consiste en dos botones, un área de texto y un cuadro de imagen. Un botón se usará para seleccionar el código de barras, y otro copiará el texto del código de barras. El cuadro de imagen mostrará la imagen seleccionada.

Reemplaza el contenido en el archivo MainPage.xaml con 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 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 una pila vertical con la posición central. Puedes cambiarlo según tu preferencia.

Escaneo de códigos de barras con IronBarcode

Esta sección describirá el código para escanear códigos de barras utilizando la biblioteca IronBarcode. Primero, usaremos un FilePicker para seleccionar el archivo y especificar el tipo de archivo para la imagen. Después de eso, usaremos la propiedad FullPath para recuperar la ruta del archivo de imagen y luego establecemos la fuente del cuadro de imagen al valor FullPath. Finalmente, usaremos el valor path en la función Read del BarcodeReader para recuperar el texto.

private async void SelectBarcode(object sender, EventArgs e)
{
    // Use FilePicker to allow the user to select an image file.
    var images = await FilePicker.Default.PickAsync(new PickOptions
    {
        PickerTitle = "Pick image",
        FileTypes = FilePickerFileType.Images
    });

    // Get the full path of the selected image file.
    var imageSource = images.FullPath.ToString();

    // Set the source of the Image view to the selected image's path.
    barcodeImage.Source = imageSource;

    // Use IronBarcode to read the barcode from the image file and get the first result.
    var result = BarcodeReader.Read(imageSource).First().Text;

    // Display the read result in the Editor.
    outputText.Text = result;
}
private async void SelectBarcode(object sender, EventArgs e)
{
    // Use FilePicker to allow the user to select an image file.
    var images = await FilePicker.Default.PickAsync(new PickOptions
    {
        PickerTitle = "Pick image",
        FileTypes = FilePickerFileType.Images
    });

    // Get the full path of the selected image file.
    var imageSource = images.FullPath.ToString();

    // Set the source of the Image view to the selected image's path.
    barcodeImage.Source = imageSource;

    // Use IronBarcode to read the barcode from the image file and get the first result.
    var result = BarcodeReader.Read(imageSource).First().Text;

    // Display the read result in the Editor.
    outputText.Text = result;
}
Private Async Sub SelectBarcode(ByVal sender As Object, ByVal e As EventArgs)
	' Use FilePicker to allow the user to select an image file.
	Dim images = Await FilePicker.Default.PickAsync(New PickOptions With {
		.PickerTitle = "Pick image",
		.FileTypes = FilePickerFileType.Images
	})

	' Get the full path of the selected image file.
	Dim imageSource = images.FullPath.ToString()

	' Set the source of the Image view to the selected image's path.
	barcodeImage.Source = imageSource

	' Use IronBarcode to read the barcode from the image file and get the first result.
	Dim result = BarcodeReader.Read(imageSource).First().Text

	' Display the read result in the Editor.
	outputText.Text = result
End Sub
$vbLabelText   $csharpLabel

El código mostrado a continuación se usará 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)
{
    // Copy the text from the Editor to the clipboard.
    await Clipboard.SetTextAsync(outputText.Text);

    // Show a success message to the user.
    await DisplayAlert("Success", "Text is copied!", "OK");
}
private async void CopyEditorText(object sender, EventArgs e)
{
    // Copy the text from the Editor to the clipboard.
    await Clipboard.SetTextAsync(outputText.Text);

    // Show a success message to the user.
    await DisplayAlert("Success", "Text is copied!", "OK");
}
Private Async Sub CopyEditorText(ByVal sender As Object, ByVal e As EventArgs)
	' Copy the text from the Editor to the clipboard.
	Await Clipboard.SetTextAsync(outputText.Text)

	' Show a success message to the user.
	Await DisplayAlert("Success", "Text is copied!", "OK")
End Sub
$vbLabelText   $csharpLabel

You can find the project source code in this article on GitHub.

Resultado

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 - Figure 1: Salida cuando no se selecciona ninguna imagen

Salida cuando no se selecciona ninguna imagen

Cuando el código de barras sea seleccionado, se mostrará como la captura de pantalla de abajo, 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 de Copiar, se activará la ventana de alerta mencionada anteriormente.

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

Alerta de copia

Conclusión

En este artículo, explicamos cómo podemos leer códigos de barras en una aplicación .NET MAUI usando IronBarcode. Como lector de códigos QR, IronBarcode funciona muy bien; proporciona la salida exacta como se esperaba. Además, puede leer códigos de barras que son difíciles de leer. También puedes crear y personalizar códigos de barras usando diferentes fuentes. Obtén más publicaciones de tutoriales sobre IronBarcode desde este enlace.

IronBarcode debe tener licencia para desarrollo y uso comercial. Puedes encontrar más información sobre licencias aquí.

Preguntas Frecuentes

¿Cómo puedo escanear códigos QR en una aplicación .NET MAUI?

Puedes escanear códigos QR en una aplicación .NET MAUI usando la biblioteca IronBarcode. Instala la biblioteca a través del Administrador de Paquetes de NuGet en Visual Studio y utiliza el método BarcodeReader.Read para extraer texto de un archivo de imagen seleccionado.

¿Cuál es el proceso para instalar IronBarcode en un proyecto .NET MAUI?

Para instalar IronBarcode en un proyecto .NET MAUI, abre la Consola del Administrador de Paquetes de NuGet en Visual Studio y ejecuta el comando Install-Package Barcode para descargar e instalar la biblioteca.

¿Qué formatos de código de barras se pueden leer usando la biblioteca IronBarcode?

IronBarcode soporta una variedad de formatos de código de barras, incluyendo códigos QR, Code 39, Code 128, PDF417, y más, permitiendo capacidades de lectura de códigos de barras versátiles en tus aplicaciones.

¿Cómo diseño la interfaz para una aplicación escáner de códigos de barras en .NET MAUI?

En .NET MAUI, la interfaz para una aplicación escáner de códigos de barras se puede diseñar usando XAML. Típicamente incluye un diseño con botones, un área de texto y un cuadro de imagen, que se pueden definir en el archivo MainPage.xaml.

¿Cómo puedo copiar el texto de un código de barras escaneado al portapapeles en una aplicación .NET MAUI?

Usa el método Clipboard.SetTextAsync en tu aplicación .NET MAUI para copiar el texto del código de barras escaneado al portapapeles. Este método puede ser activado por un clic en un botón, mostrando una alerta para confirmar la acción.

¿Es posible personalizar las apariencias de los códigos de barras en .NET MAUI con IronBarcode?

Sí, IronBarcode permite la personalización de las apariencias de los códigos de barras proporcionando opciones para alterar fuentes, colores y estilos, permitiendo la creación de códigos de barras visualmente adaptados.

¿Necesito una licencia para usar IronBarcode en aplicaciones comerciales?

Sí, se requiere una licencia para usar IronBarcode tanto para desarrollo como para propósitos comerciales. Los detalles de licencia y opciones están disponibles en el sitio web de IronBarcode.

¿Dónde puedo acceder al código fuente del tutorial del escáner de códigos de barras de .NET MAUI?

El código fuente del tutorial del escáner de códigos de barras de .NET MAUI está disponible en GitHub. Un enlace al repositorio se proporciona en el artículo para facilitar el acceso.

¿Cómo mejora IronBarcode el escaneo de códigos de barras en aplicaciones .NET MAUI?

IronBarcode mejora el escaneo de códigos de barras en aplicaciones .NET MAUI proporcionando una API robusta que soporta múltiples formatos de códigos de barras y una integración fluida con proyectos .NET MAUI, asegurando una lectura de códigos de barras eficiente y precisa.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más
¿Listo para empezar?
Nuget Descargas 1,979,979 | Version: 2025.11 recién lanzado