Cómo crear una aplicación de código de barras de escritorio (escáner/generador) con .NET MAUI

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

Para una solución de software integral, no se trata solo de la accesibilidad móvil. La capacidad de despliegue nativo en sistemas operativos de escritorio, como Windows y macOS, es igualmente crítica. Este enfoque multiplataforma permite a las empresas aprovechar toda la potencia de las estaciones de trabajo para tareas de gran volumen, como el seguimiento y la administración de activos.

Sin un soporte de escritorio adecuado, los flujos de trabajo se interrumpen o, lo que es peor, se ven forzados a utilizar dispositivos menos capaces. Esto es especialmente importante en la gestión de inventarios, donde el personal de oficina necesita generar lotes de códigos o verificar escaneos rápidamente sin moverse de sus escritorios.

IronBarcode proporciona las herramientas necesarias para implementar estas funciones, garantizando que su aplicación .NET MAUI funcione de forma fiable en cualquier ordenador.

En este artículo, explicaremos cómo integrar IronBarcode para crear un Escáner de código de barras de escritorio y un Generador de código de barras de escritorio.



Aplicación de escritorio .NET MAUI

La integración de IronBarcode en una aplicación .NET MAUI es sencilla, ya que la biblioteca funciona de forma nativa con la plataforma de escritorio. En este ejemplo, crearemos por separado un escáner de códigos de barras y un generador de códigos de barras con IronBarcode.

Empecemos por el escáner de códigos de barras.

Interfaz de escáner de códigos de barras XAML

Para la interfaz .NET MAUI, se implementa una interfaz sencilla que permite a los usuarios cargar imágenes de códigos de barras mediante un botón de envío. El archivo MainPage.xaml del proyecto debe sustituirse por el contenido que se muestra a continuación.

<?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="MauiApp1.MainPage"
             BackgroundColor="{DynamicResource PageBackgroundColor}">

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

            <Label Text="Desktop Barcode Scanner"
                   FontSize="32"
                   HorizontalOptions="Center" />

            <Image x:Name="ScannerImage"
                   HeightRequest="300"
                   WidthRequest="400"
                   BackgroundColor="#F0F0F0"
                   Aspect="AspectFit"
                   HorizontalOptions="Center" />

            <Button Text="Select Image to Scan"
                    Clicked="OnScanButtonClicked"
                    HorizontalOptions="Center" 
                    WidthRequest="200"/>

            <Label x:Name="ResultLabel"
                   Text="Result will appear here..."
                   FontSize="20"
                   HorizontalOptions="Center"
                   HorizontalTextAlignment="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="MauiApp1.MainPage"
             BackgroundColor="{DynamicResource PageBackgroundColor}">

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

            <Label Text="Desktop Barcode Scanner"
                   FontSize="32"
                   HorizontalOptions="Center" />

            <Image x:Name="ScannerImage"
                   HeightRequest="300"
                   WidthRequest="400"
                   BackgroundColor="#F0F0F0"
                   Aspect="AspectFit"
                   HorizontalOptions="Center" />

            <Button Text="Select Image to Scan"
                    Clicked="OnScanButtonClicked"
                    HorizontalOptions="Center" 
                    WidthRequest="200"/>

            <Label x:Name="ResultLabel"
                   Text="Result will appear here..."
                   FontSize="20"
                   HorizontalOptions="Center"
                   HorizontalTextAlignment="Center" />

        </VerticalStackLayout>
    </ScrollView>

</ContentPage>
XML

Escáner de código de barras de sobremesa Logic CS

A continuación, se implementa la lógica para cuando el usuario haga clic en el botón. Se adjunta un controlador de eventos OnScanButtonClicked al botón de escaneo en la interfaz de usuario.

PickPhotoAsync se utiliza en primer lugar para que los usuarios elijan el código de barras que desean cargar, seguido de OpenReadAsync para acceder al flujo de archivos. Los datos de la imagen se copian inmediatamente en un MemoryStream utilizando CopyToAsync. Esto permite que los datos se utilicen simultáneamente para mostrar la imagen en pantalla y para que el método Read escanee el código de barras.

Por último, el valor del código de barras se muestra en la interfaz de usuario si se detecta un código de barras válido, o se muestra un mensaje en rojo indicando que no se ha encontrado ningún código de barras en la imagen.

Por favor nota Sustituya la clave de licencia por la suya propia antes de probar la aplicación.

using IronBarCode;

namespace MauiApp1
{
    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();
            // Your license key is set here
            IronBarCode.License.LicenseKey = "YOUR_KEY"
        }

        private async void OnScanButtonClicked(object sender, EventArgs e)
        {
            try
            {
                var fileResult = await MediaPicker.Default.PickPhotoAsync();

                if (fileResult != null)
                {
                    // 1. Copy the file content into a byte array or MemoryStream immediately
                    // This ensures we have the data in memory before the file closes
                    byte[] imageBytes;
                    using (var stream = await fileResult.OpenReadAsync())
                    using (var memoryStream = new MemoryStream())
                    {
                        await stream.CopyToAsync(memoryStream);
                        imageBytes = memoryStream.ToArray();
                    }

                    // 2. Set the Image Source for the UI
                    // We give the UI a FRESH stream from the bytes we just saved
                    ScannerImage.Source = ImageSource.FromStream(() => new MemoryStream(imageBytes));

                    // 3. Process the Barcode
                    // We give IronBarcode its OWN fresh stream from the same bytes
                    using (var processingStream = new MemoryStream(imageBytes))
                    {
                        // 4. Read the barcode with Read
                        var results = BarcodeReader.Read(processingStream);

                        // 5. Display barcode results
                        if (results != null && results.Count > 0)
                        {

                            // Successfully found barcode value
                            ResultLabel.Text = $"Success: {results[0].Value}";
                            ResultLabel.TextColor = Colors.Green;
                        }
                        else
                        {
                            // Image uploaded has no barcode or barcode value is not found
                            ResultLabel.Text = "No barcode detected.";
                            ResultLabel.TextColor = Colors.Red;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                // Display any exception thrown in runtime
                ResultLabel.Text = $"Error: {ex.Message}";
                ResultLabel.TextColor = Colors.Red;
            }
        }
    }
}
using IronBarCode;

namespace MauiApp1
{
    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();
            // Your license key is set here
            IronBarCode.License.LicenseKey = "YOUR_KEY"
        }

        private async void OnScanButtonClicked(object sender, EventArgs e)
        {
            try
            {
                var fileResult = await MediaPicker.Default.PickPhotoAsync();

                if (fileResult != null)
                {
                    // 1. Copy the file content into a byte array or MemoryStream immediately
                    // This ensures we have the data in memory before the file closes
                    byte[] imageBytes;
                    using (var stream = await fileResult.OpenReadAsync())
                    using (var memoryStream = new MemoryStream())
                    {
                        await stream.CopyToAsync(memoryStream);
                        imageBytes = memoryStream.ToArray();
                    }

                    // 2. Set the Image Source for the UI
                    // We give the UI a FRESH stream from the bytes we just saved
                    ScannerImage.Source = ImageSource.FromStream(() => new MemoryStream(imageBytes));

                    // 3. Process the Barcode
                    // We give IronBarcode its OWN fresh stream from the same bytes
                    using (var processingStream = new MemoryStream(imageBytes))
                    {
                        // 4. Read the barcode with Read
                        var results = BarcodeReader.Read(processingStream);

                        // 5. Display barcode results
                        if (results != null && results.Count > 0)
                        {

                            // Successfully found barcode value
                            ResultLabel.Text = $"Success: {results[0].Value}";
                            ResultLabel.TextColor = Colors.Green;
                        }
                        else
                        {
                            // Image uploaded has no barcode or barcode value is not found
                            ResultLabel.Text = "No barcode detected.";
                            ResultLabel.TextColor = Colors.Red;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                // Display any exception thrown in runtime
                ResultLabel.Text = $"Error: {ex.Message}";
                ResultLabel.TextColor = Colors.Red;
            }
        }
    }
}
Imports IronBarCode

Namespace MauiApp1
    Partial Public Class MainPage
        Inherits ContentPage

        Public Sub New()
            InitializeComponent()
            ' Your license key is set here
            IronBarCode.License.LicenseKey = "YOUR_KEY"
        End Sub

        Private Async Sub OnScanButtonClicked(ByVal sender As Object, ByVal e As EventArgs)
            Try
                Dim fileResult = Await MediaPicker.Default.PickPhotoAsync()

                If fileResult IsNot Nothing Then
                    ' 1. Copy the file content into a byte array or MemoryStream immediately
                    ' This ensures we have the data in memory before the file closes
                    Dim imageBytes As Byte()
                    Using stream = Await fileResult.OpenReadAsync(), memoryStream = New MemoryStream()
                        Await stream.CopyToAsync(memoryStream)
                        imageBytes = memoryStream.ToArray()
                    End Using

                    ' 2. Set the Image Source for the UI
                    ' We give the UI a FRESH stream from the bytes we just saved
                    ScannerImage.Source = ImageSource.FromStream(Function() New MemoryStream(imageBytes))

                    ' 3. Process the Barcode
                    ' We give IronBarcode its OWN fresh stream from the same bytes
                    Using processingStream = New MemoryStream(imageBytes)
                        ' 4. Read the barcode with Read
                        Dim results = BarcodeReader.Read(processingStream)

                        ' 5. Display barcode results
                        If results IsNot Nothing AndAlso results.Count > 0 Then
                            ' Successfully found barcode value
                            ResultLabel.Text = $"Success: {results(0).Value}"
                            ResultLabel.TextColor = Colors.Green
                        Else
                            ' Image uploaded has no barcode or barcode value is not found
                            ResultLabel.Text = "No barcode detected."
                            ResultLabel.TextColor = Colors.Red
                        End If
                    End Using
                End If
            Catch ex As Exception
                ' Display any exception thrown in runtime
                ResultLabel.Text = $"Error: {ex.Message}"
                ResultLabel.TextColor = Colors.Red
            End Try
        End Sub
    End Class
End Namespace
$vbLabelText   $csharpLabel

Salida con valor de BarCode encontrado

Salida de códigos de barras encontrados related to Salida con valor de BarCode encontrado

Como puede ver, la aplicación muestra el resultado del código de barras y la imagen del código de barras cargada.

Salida sin valor de código de barras

No se han encontrado BarCodes de salida related to Salida sin valor de código de barras

Como puede ver, cuando un usuario sube una imagen que no contiene un código de barras, aparece un mensaje en rojo que dice "No se han encontrado códigos de barras"

Generador de códigos de barras de escritorio

La siguiente parte se basa en el mismo concepto mediante la integración de IronBarcode en MAUI para crear un generador de código de barras.

Interfaz del generador de códigos de barras XAML

Para la interfaz del generador, se ha implementado un sencillo formulario que permite introducir texto y seleccionar el tipo de código de barras mediante un menú desplegable. Se incluye un botón para activar el proceso de generación y guardado, junto con una vista de imagen para mostrar el resultado. El archivo MainPage.xaml debe sustituirse por el contenido que se muestra a continuación.

Consulte aquí para ver la lista completa de códigos de barras 1D y aquí para los códigos de barras 2D.

<?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="MauiApp1.MainPage"
             BackgroundColor="{DynamicResource PageBackgroundColor}">

    <ScrollView>
        <VerticalStackLayout Spacing="20" Padding="30" VerticalOptions="Center">

            <Label Text="Barcode Generator"
                   FontSize="32"
                   HorizontalOptions="Center" />

            <Entry x:Name="BarcodeEntry"
                   Placeholder="Enter value (e.g. 12345 or https://ironsoftware.com)"
                   WidthRequest="300" />

            <Picker x:Name="BarcodeTypePicker"
                    Title="Select Barcode Type"
                    WidthRequest="300">
                <Picker.ItemsSource>
                    <x:Array Type="{x:Type x:String}">
                        <x:String>QRCode</x:String>
                        <x:String>Code128</x:String>
                        <x:String>EAN13</x:String>
                        <x:String>Code39</x:String>
                        <x:String>PDF417</x:String>
                    </x:Array>
                </Picker.ItemsSource>
            </Picker>

            <Button Text="Generate &amp; Save"
                    Clicked="OnGenerateButtonClicked"
                    HorizontalOptions="Center"
                    WidthRequest="200" />

            <Image x:Name="GeneratedImage"
                   HeightRequest="200"
                   WidthRequest="300"
                   BackgroundColor="#F0F0F0"
                   Aspect="AspectFit" />

            <Label x:Name="StatusLabel"
                   FontSize="16"
                   HorizontalOptions="Center"
                   HorizontalTextAlignment="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="MauiApp1.MainPage"
             BackgroundColor="{DynamicResource PageBackgroundColor}">

    <ScrollView>
        <VerticalStackLayout Spacing="20" Padding="30" VerticalOptions="Center">

            <Label Text="Barcode Generator"
                   FontSize="32"
                   HorizontalOptions="Center" />

            <Entry x:Name="BarcodeEntry"
                   Placeholder="Enter value (e.g. 12345 or https://ironsoftware.com)"
                   WidthRequest="300" />

            <Picker x:Name="BarcodeTypePicker"
                    Title="Select Barcode Type"
                    WidthRequest="300">
                <Picker.ItemsSource>
                    <x:Array Type="{x:Type x:String}">
                        <x:String>QRCode</x:String>
                        <x:String>Code128</x:String>
                        <x:String>EAN13</x:String>
                        <x:String>Code39</x:String>
                        <x:String>PDF417</x:String>
                    </x:Array>
                </Picker.ItemsSource>
            </Picker>

            <Button Text="Generate &amp; Save"
                    Clicked="OnGenerateButtonClicked"
                    HorizontalOptions="Center"
                    WidthRequest="200" />

            <Image x:Name="GeneratedImage"
                   HeightRequest="200"
                   WidthRequest="300"
                   BackgroundColor="#F0F0F0"
                   Aspect="AspectFit" />

            <Label x:Name="StatusLabel"
                   FontSize="16"
                   HorizontalOptions="Center"
                   HorizontalTextAlignment="Center" />

        </VerticalStackLayout>
    </ScrollView>

</ContentPage>
XML

Generador de códigos de barras de escritorio Logic CS

A continuación, se implementa la lógica para el evento de clic del botón. Se adjunta un controlador de eventos OnGenerateButtonClicked al botón de generación de la interfaz de usuario.

La entrada del usuario se valida para garantizar que el texto está presente y que se ha seleccionado un tipo, tras lo cual la selección se asigna al BarcodeEncoding correcto. BarcodeWriter.CreateBarcode se utiliza para generar la imagen, cambiar su tamaño y convertirla en datos binarios JPEG. A continuación, la imagen se muestra en pantalla mediante un MemoryStream.

Por último, el archivo de código de barras generado se guarda directamente en el escritorio del usuario mediante File.WriteAllBytes, y la etiqueta de estado se actualiza para confirmar la ubicación de guardado.

Por favor nota Sustituya la clave de licencia por la suya propia antes de probar la aplicación.

using IronBarCode;
using System.IO; // Required for saving files

namespace MauiApp1
{
    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();
            IronBarCode.License.LicenseKey = "YOUR-KEY";

            // Set default selection
            BarcodeTypePicker.SelectedIndex = 0;
        }

        private void OnGenerateButtonClicked(object sender, EventArgs e)
        {
            try
            {
                // 1. Get and Validate Input
                string text = BarcodeEntry.Text;

                if (string.IsNullOrWhiteSpace(text))
                {
                    StatusLabel.Text = "Error: Please enter text.";
                    StatusLabel.TextColor = Colors.Red;
                    return;
                }

                if (BarcodeTypePicker.SelectedIndex == -1)
                {
                    StatusLabel.Text = "Error: Please select a type.";
                    StatusLabel.TextColor = Colors.Red;
                    return;
                }

                // 2. Determine Encoding Type
                string selectedType = BarcodeTypePicker.SelectedItem.ToString();
                BarcodeEncoding encoding = BarcodeEncoding.QRCode;

                switch (selectedType)
                {
                    case "QRCode": encoding = BarcodeEncoding.QRCode; break;
                    case "Code128": encoding = BarcodeEncoding.Code128; break;
                    case "EAN13": encoding = BarcodeEncoding.EAN13; break;
                    case "Code39": encoding = BarcodeEncoding.Code39; break;
                    case "PDF417": encoding = BarcodeEncoding.PDF417; break;
                }

                // 3. Generate Barcode
                var barcode = BarcodeWriter.CreateBarcode(text, encoding);
                barcode.ResizeTo(400, 200); // Optional resizing

                // 4. Convert to Bytes (JPEG)
                var bytes = barcode.ToJpegBinaryData();

                // 5. Update UI
                GeneratedImage.Source = ImageSource.FromStream(() => new MemoryStream(bytes));

                // 6. Save to Desktop automatically
                string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
                string fileName = $"barcode_{DateTime.Now:yyyyMMdd_HHmmss}.jpg";
                string fullPath = Path.Combine(desktopPath, fileName);

                File.WriteAllBytes(fullPath, bytes);

                // 7. Show Success Message
                StatusLabel.Text = $"Saved to Desktop:\n{fileName}";
                StatusLabel.TextColor = Colors.Green;
            }
            catch (Exception ex)
            {
                StatusLabel.Text = $"Error: {ex.Message}";
                StatusLabel.TextColor = Colors.Red;
            }
        }
    }
}
using IronBarCode;
using System.IO; // Required for saving files

namespace MauiApp1
{
    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();
            IronBarCode.License.LicenseKey = "YOUR-KEY";

            // Set default selection
            BarcodeTypePicker.SelectedIndex = 0;
        }

        private void OnGenerateButtonClicked(object sender, EventArgs e)
        {
            try
            {
                // 1. Get and Validate Input
                string text = BarcodeEntry.Text;

                if (string.IsNullOrWhiteSpace(text))
                {
                    StatusLabel.Text = "Error: Please enter text.";
                    StatusLabel.TextColor = Colors.Red;
                    return;
                }

                if (BarcodeTypePicker.SelectedIndex == -1)
                {
                    StatusLabel.Text = "Error: Please select a type.";
                    StatusLabel.TextColor = Colors.Red;
                    return;
                }

                // 2. Determine Encoding Type
                string selectedType = BarcodeTypePicker.SelectedItem.ToString();
                BarcodeEncoding encoding = BarcodeEncoding.QRCode;

                switch (selectedType)
                {
                    case "QRCode": encoding = BarcodeEncoding.QRCode; break;
                    case "Code128": encoding = BarcodeEncoding.Code128; break;
                    case "EAN13": encoding = BarcodeEncoding.EAN13; break;
                    case "Code39": encoding = BarcodeEncoding.Code39; break;
                    case "PDF417": encoding = BarcodeEncoding.PDF417; break;
                }

                // 3. Generate Barcode
                var barcode = BarcodeWriter.CreateBarcode(text, encoding);
                barcode.ResizeTo(400, 200); // Optional resizing

                // 4. Convert to Bytes (JPEG)
                var bytes = barcode.ToJpegBinaryData();

                // 5. Update UI
                GeneratedImage.Source = ImageSource.FromStream(() => new MemoryStream(bytes));

                // 6. Save to Desktop automatically
                string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
                string fileName = $"barcode_{DateTime.Now:yyyyMMdd_HHmmss}.jpg";
                string fullPath = Path.Combine(desktopPath, fileName);

                File.WriteAllBytes(fullPath, bytes);

                // 7. Show Success Message
                StatusLabel.Text = $"Saved to Desktop:\n{fileName}";
                StatusLabel.TextColor = Colors.Green;
            }
            catch (Exception ex)
            {
                StatusLabel.Text = $"Error: {ex.Message}";
                StatusLabel.TextColor = Colors.Red;
            }
        }
    }
}
Imports IronBarCode
Imports System.IO ' Required for saving files

Namespace MauiApp1
    Public Partial Class MainPage
        Inherits ContentPage

        Public Sub New()
            InitializeComponent()
            IronBarCode.License.LicenseKey = "YOUR-KEY"

            ' Set default selection
            BarcodeTypePicker.SelectedIndex = 0
        End Sub

        Private Sub OnGenerateButtonClicked(sender As Object, e As EventArgs)
            Try
                ' 1. Get and Validate Input
                Dim text As String = BarcodeEntry.Text

                If String.IsNullOrWhiteSpace(text) Then
                    StatusLabel.Text = "Error: Please enter text."
                    StatusLabel.TextColor = Colors.Red
                    Return
                End If

                If BarcodeTypePicker.SelectedIndex = -1 Then
                    StatusLabel.Text = "Error: Please select a type."
                    StatusLabel.TextColor = Colors.Red
                    Return
                End If

                ' 2. Determine Encoding Type
                Dim selectedType As String = BarcodeTypePicker.SelectedItem.ToString()
                Dim encoding As BarcodeEncoding = BarcodeEncoding.QRCode

                Select Case selectedType
                    Case "QRCode"
                        encoding = BarcodeEncoding.QRCode
                    Case "Code128"
                        encoding = BarcodeEncoding.Code128
                    Case "EAN13"
                        encoding = BarcodeEncoding.EAN13
                    Case "Code39"
                        encoding = BarcodeEncoding.Code39
                    Case "PDF417"
                        encoding = BarcodeEncoding.PDF417
                End Select

                ' 3. Generate Barcode
                Dim barcode = BarcodeWriter.CreateBarcode(text, encoding)
                barcode.ResizeTo(400, 200) ' Optional resizing

                ' 4. Convert to Bytes (JPEG)
                Dim bytes = barcode.ToJpegBinaryData()

                ' 5. Update UI
                GeneratedImage.Source = ImageSource.FromStream(Function() New MemoryStream(bytes))

                ' 6. Save to Desktop automatically
                Dim desktopPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
                Dim fileName As String = $"barcode_{DateTime.Now:yyyyMMdd_HHmmss}.jpg"
                Dim fullPath As String = Path.Combine(desktopPath, fileName)

                File.WriteAllBytes(fullPath, bytes)

                ' 7. Show Success Message
                StatusLabel.Text = $"Saved to Desktop:{Environment.NewLine}{fileName}"
                StatusLabel.TextColor = Colors.Green
            Catch ex As Exception
                StatusLabel.Text = $"Error: {ex.Message}"
                StatusLabel.TextColor = Colors.Red
            End Try
        End Sub
    End Class
End Namespace
$vbLabelText   $csharpLabel

Salida con BarCode generado

Generar código de barras con éxito >Código de barras con éxito

Como puede verse, la aplicación muestra el código de barras generado y lo guarda en el escritorio del usuario.

Fallo de salida

Fallo al generar el código de barras >Código de barras incorrecto

Ciertos tipos de códigos de barras tienen restricciones y requisitos de formato para el valor de entrada. Cuando el código de barras no se genera, la aplicación muestra la excepción IronBarcode, como se muestra arriba. Por favor, consulte los respectivos detalles1D y 2D para el formato de cada tipo de código de barras.

Para probar los ejemplos anteriores (Desktop Barcode Scanner y el Desktop Barcode Generator), descargue este proyecto de ejemplo.

Preguntas Frecuentes

¿Qué es .NET MAUI?

.NET MAUI es un marco multiplataforma para crear aplicaciones móviles y de escritorio nativas con C# y XAML. Permite a los desarrolladores crear aplicaciones para Android, iOS, macOS y Windows utilizando una única base de código.

¿Cómo puede utilizarse IronBarcode en una aplicación MAUI .NET?

IronBarcode puede integrarse en una aplicación .NET MAUI para permitir la generación de códigos de barras y las capacidades de escaneado. Proporciona una forma sencilla de crear y leer códigos de barras en múltiples plataformas de escritorio.

¿Qué tipos de códigos de barras puede generar IronBarcode?

IronBarcode soporta la generación de una amplia variedad de formatos de códigos de barras, incluyendo códigos QR, Code 128, Code 39, UPC, EAN, y muchos más, haciéndolo versátil para cualquier necesidad de aplicación de escritorio.

¿Es posible escanear códigos de barras con una aplicación de escritorio creada con IronBarcode?

Sí, IronBarcode puede utilizarse para escanear códigos de barras en aplicaciones de escritorio, lo que permite a los usuarios descodificar la información de los códigos de barras de forma rápida y eficaz a través de la interfaz de la aplicación.

¿Cuáles son las ventajas de utilizar IronBarcode para las aplicaciones de códigos de barras?

IronBarcode ofrece una gran precisión, velocidad y facilidad de uso. Se integra a la perfección con .NET MAUI, proporcionando un soporte completo para la generación y lectura de códigos de barras en aplicaciones de escritorio.

¿Puede IronBarcode manejar grandes volúmenes de datos de códigos de barras?

Sí, IronBarcode está diseñado para procesar de forma eficiente grandes volúmenes de datos de códigos de barras, lo que lo hace adecuado para aplicaciones que requieren manejar tareas extensas de códigos de barras.

¿Necesito una biblioteca aparte para escanear y generar códigos de barras?

No, IronBarcode ofrece funcionalidades de escaneado y generación de códigos de barras en una única biblioteca, lo que simplifica el proceso de desarrollo de aplicaciones de escritorio.

¿Cuáles son los requisitos del sistema para utilizar IronBarcode con .NET MAUI?

IronBarcode requiere un entorno .NET compatible con .NET MAUI. Es compatible con Windows, macOS y otras plataformas en las que puedan ejecutarse aplicaciones .NET MAUI.

¿Cómo garantiza IronBarcode la precisión de los códigos de barras?

IronBarcode utiliza algoritmos avanzados para garantizar una alta precisión tanto en la generación como en el escaneado de códigos de barras, reduciendo la probabilidad de errores en la codificación o descodificación de datos de códigos de barras.

¿Puede utilizarse IronBarcode tanto para proyectos comerciales como personales?

Sí, IronBarcode puede utilizarse tanto para proyectos comerciales como personales, y ofrece opciones de licencia flexibles para adaptarse a los diferentes requisitos de los proyectos.

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 2,070,733 | Versión: 2026.2 recién lanzado