Genera l'immagine del codice a barre nell'applicazione MAUI per Android

Categoria del blog: Barcode.NETAndroid

07.05.2024

Questo articolo spiega come creare un'applicazione MAUI e generare un'immagine di codice a barre in Android. Per la generazione di codici a barre viene utilizzato VintaSoft Barcode .NET SDK.

Ecco i passaggi da seguire:
  1. Crea un'applicazione MAUI vuota.
    Apri Visual Studio .NET 2022 e crea un nuovo progetto di tipo Applicazione MAUI .NET:

    Configura il progetto per utilizzare .NET 8.0:

  2. Specifica che l'applicazione MAUI verrà utilizzata in Android.
    Apri il file di progetto e seleziona i framework di destinazione: Android.

  3. Aggiungi riferimenti ai pacchetti nuget Vintasoft Barcode all'applicazione MAUI.
    Aggiungi riferimenti al pacchetto nuget Vintasoft.Barcode e Vintasoft.Barcode.SkiaSharp nuget-package all'applicazione MAUI.
    Riferimento a Vintasoft.Barcode.Il pacchetto nuget SkiaSharp è necessario solo se l'SDK deve disegnare il valore di testo del codice a barre sull'immagine del codice a barre. È possibile utilizzare Vintasoft.Barcode.ImageSharp nuget-package al posto di Vintasoft.Barcode.SkiaSharp nuget-package.



    Aggiungere un riferimento al SkiaSharp nuget-package all'applicazione MAUI.

  4. Specifica che il compilatore .NET non debba ridurre/minimizzare gli assembly Vintasoft e Mono.Android.
    Apri il file di progetto MAUI e aggiungi elementi di progetto che consentono di specificare che il compilatore .NET non debba ridurre/minimizzare gli assembly Vintasoft e Mono.Android se gli assembly .NET dell'applicazione MAUI devono essere ridotti/minimizzati.


    Ecco gli elementi del progetto che consentono di specificare che il compilatore .NET non deve tagliare/minimizzare gli assembly Vintasoft e Mono.Android se gli assembly .NET dell'applicazione MAUI devono essere tagliati/minimizzati:
    <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. Aggiungi un controllo dell'interfaccia utente per visualizzare l'immagine del codice a barre generata, un pulsante per generare l'immagine del codice a barre.
    Apri il layout XAML della pagina principale in File "MainPage.xaml" e aggiunta di un controllo dell'interfaccia utente per visualizzare l'immagine del codice a barre generata, pulsante per generare l'immagine del codice a barre.


    Ecco il codice XAML della pagina principale (la pagina contiene un controllo dell'interfaccia utente per visualizzare l'immagine del codice a barre generata, un pulsante per generare l'immagine del codice a barre):
    <?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. Aggiungi codice C# che registra la versione di valutazione per VintaSoft Barcode .NET SDK.
    Ottieni il codice C# per utilizzare la versione di valutazione in Android seguendo il metodo descritto in documentazione e inserire il codice ottenuto nel codice C# del file "MainPage.xaml.cs".


    Ecco il codice C# che registra la versione di valutazione per 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. Aggiungi il codice C# che genera l'immagine del codice a barre.
    Apri il file "MainPage.xaml.cs" e aggiungi il codice C#, che genera l'immagine del codice a barre, al metodo OnGenerateBarcodeClicked.


    Ecco il codice C# che genera l'immagine del codice a barre e visualizza l'immagine generata in 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. Firma l'assembly dell'applicazione MAUI utilizzando un file con nome sicuro.
    Se disponi di un file con nome sicuro, firma l'assembly dell'applicazione MAUI utilizzando un file con nome sicuro.


    Se non disponi di un file con nome sicuro, leggi come generare un file con nome sicuro qui.
  9. Esegui l'applicazione MAUI nell'emulatore Android e guarda il risultato.