Generar imagen de código de barras en la aplicación MAUI para Android

Categoría del blog: Barcode.NETAndroid

07.05.2024

Este artículo explica cómo crear una aplicación MAUI y generar una imagen de código de barras en Android. Para la generación de códigos de barras se utiliza el SDK VintaSoft Barcode .NET.

Estos son los pasos que se deben realizar:
  1. Crear una aplicación MAUI en blanco.
    Abrir Visual Studio .NET 2022 y crear un nuevo proyecto, del tipo de aplicación .NET MAUI:

    Configurar el proyecto para usar .NET 8.0:

  2. Especifique que la aplicación MAUI se usará en Android.
    Abra el archivo del proyecto y seleccione los frameworks de destino: Android.

  3. Agregar referencias a los nuget-packages de Vintasoft Barcode a la aplicación MAUI.
    Agregar referencias al Vintasoft.Barcode nuget-package y al Vintasoft.Barcode.SkiaSharp nuget-package a la aplicación MAUI.
    La referencia a Vintasoft.Barcode.SkiaSharp nuget-package solo es necesaria si el SDK debe dibujar el valor de texto del código de barras en la imagen del código de barras. Se puede usar Vintasoft.Barcode.ImageSharp nuget-package en lugar de paquete nuget de Vintasoft.Barcode.SkiaSharp.



    Agregar referencia al SkiaSharp nuget-package a la aplicación MAUI.

  4. Especificar que el compilador .NET no debe recortar/minimizar los ensamblados Vintasoft ni el ensamblado Mono.Android.
    Abrir el archivo de proyecto MAUI y agregar elementos de proyecto, que permiten especificar que el compilador .NET no debe recortar/minimizar los ensamblados Vintasoft ni el ensamblado Mono.Android si los ensamblados .NET de la aplicación MAUI deben recortarse/minimizarse.


    Aquí están los elementos del proyecto que permiten especificar que el compilador .NET no debe recortar/minimizar los ensamblados Vintasoft ni el ensamblado Mono.Android si los ensamblados .NET de la aplicación MAUI deben recortarse/minimizarse:
    <ItemGroup>
        <TrimmerRootAssembly Include="Vintasoft.Barcode" RootMode="library" />
        <TrimmerRootAssembly Include="Vintasoft.Barcode.SkiaSharp" RootMode="library" />
        <TrimmerRootAssembly Include="Vintasoft.Shared" RootMode="library" />
        <TrimmerRootAssembly Include="Mono.Android" RootMode="library" />
    </ItemGroup>
    
  5. Agregar un control de IU para mostrar la imagen de código de barras generada, un botón para generar la imagen de código de barras.
    Abrir el diseño XAML de la página principal en Archivo "MainPage.xaml" y agregue un control de IU para mostrar la imagen del código de barras generada y un botón para generarla.


    Aquí está el código XAML de la página principal (la página contiene un control de IU para mostrar la imagen del código de barras generada y un botón para generarla):
    <?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">
        <ScrollView>
            <VerticalStackLayout
                Padding="30,0"
                Spacing="25">
                <Image x:Name="barcodeImage" HeightRequest="300" Aspect="AspectFit"/>
    
                <Button
                    x:Name="GenerateBarcodeBtn"
                    Text="Generate Barcode" 
                    Clicked="OnGenerateBarcodeClicked"
                    HorizontalOptions="Fill" />
            </VerticalStackLayout>
        </ScrollView>
    </ContentPage>
    
  6. Agregue código C# que registre la versión de evaluación del de VintaSoft Barcode .NET SDK.
    Obtenga el código C# para usar la versión de evaluación en Android utilizando la forma descrita en la documentación e inserte el código obtenido en el código C# del archivo "MainPage.xaml.cs".


    Aquí hay un código C# que registra la versión de evaluación para VintaSoft Barcode .NET SDK:
    // get the application name
    string applicationName = Vintasoft.Barcode.BarcodeGlobalSettings.ApplicationName;
    // if MAUI application is using in Android
    if (applicationName.StartsWith("Android"))
    {
        // register the evaluation license for VintaSoft Barcode .NET SDK
        Vintasoft.Barcode.BarcodeGlobalSettings.Register("LINUX_EVAL_USER", "LINUX_EVAL_USER_EMAIL", "LINUX_EVAL_END_DATE", "LINUX_EVAL_REG_CODE");
    }
    
  7. Agregar código C# que genera la imagen del código de barras.
    Abrir el archivo "MainPage.xaml.cs" y agregar el código C#, que genera la imagen del código de barras, al método OnGenerateBarcodeClicked.


    Aquí hay un código C# que genera una imagen de código de barras y muestra la imagen generada en Image-control:
    namespace MauiApp1
    {
        public partial class MainPage : ContentPage
        {
            int count = 0;
    
            public MainPage()
            {
                InitializeComponent();
            }
    
            private void OnGenerateBarcodeClicked(object sender, EventArgs e)
            {
                // get the application name
                string applicationName = Vintasoft.Barcode.BarcodeGlobalSettings.ApplicationName;
                // if MAUI application is using in Android
                if (applicationName.StartsWith("Android"))
                {
                    // register the evaluation license for VintaSoft Barcode .NET SDK
                    Vintasoft.Barcode.BarcodeGlobalSettings.Register("LINUX_EVAL_USER", "LINUX_EVAL_USER_EMAIL", "LINUX_EVAL_END_DATE", "LINUX_EVAL_REG_CODE");
                }
    
                // create the barcode writer
                using (Vintasoft.Barcode.BarcodeWriter barcodeWriter = new Vintasoft.Barcode.BarcodeWriter())
                {
                    // specify that barcode writer must generate DataMatrix barcode
                    barcodeWriter.Settings.Barcode = Vintasoft.Barcode.BarcodeType.DataMatrix;
                    // specify value for DataMatrix barcode
                    barcodeWriter.Settings.Value = "12345";
    
                    // create memory stream that will store generated barcode image as PNG file
                    MemoryStream stream = new MemoryStream();
                    // generate barcode image and save as PNG file to the memory stream
                    barcodeWriter.SaveBarcodeAsImage(stream, "png");
                    stream.Position = 0;
    
                    barcodeImage.Source = ImageSource.FromStream(() => stream);
                }
            }
        }
    }
    
  8. Firme el ensamblado de la aplicación MAUI usando un archivo de nombre seguro.
    Si tiene un archivo de nombre seguro, firme el ensamblado de la aplicación MAUI usando un archivo de nombre seguro.


    Si no tiene el archivo de nombre seguro, lea cómo generar un archivo de nombre seguro aquí.
  9. Ejecuta la aplicación MAUI en el emulador de Android y observa el resultado.