Genera un código de barras en Linux usando una aplicación .NET

Categoría del blog: Barcode.NETLinux

22.12.2023

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

Pasos para completar esta tarea:
  1. Abrir el escritorio de Ubuntu.

  2. Cree una carpeta que almacenará los archivos de la aplicación .NET. Cree la carpeta "Generate_Barcode" en el escritorio del usuario y acceda a ella.


  3. Abrir la terminal de comandos. Esto se puede hacer seleccionando "Abrir en la terminal" en el menú contextual o presionando la combinación de teclas Ctrl+Alt+T.


  4. Llame al comando en la terminal, que crea un proyecto de una nueva aplicación .NET de consola:
    dotnet new console --framework net8.0
    



    El proyecto creado contiene los archivos "Generate_Barcode.csproj" y "Program.cs", que contienen el código C# de la aplicación. Cierre la terminal.

  5. Abra el archivo de proyecto "Generate_Barcode.csproj" en un editor de texto y cambie el texto por el siguiente:
    <Project Sdk="Microsoft.NET.Sdk">
    
      <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>net8.0</TargetFramework>
        <RootNamespace>ConsoleApp1</RootNamespace>
        <ImplicitUsings>enable</ImplicitUsings>
        <Nullable>enable</Nullable>
      </PropertyGroup>
    
      <ItemGroup>
        <PackageReference Include="SkiaSharp" Version="2.88.6" />
        <PackageReference Include="SkiaSharp.NativeAssets.Linux" Version="2.88.6" />
        <PackageReference Include="Vintasoft.Barcode" Version="14.2.0.3" />
        <PackageReference Include="Vintasoft.Barcode.SkiaSharp" Version="14.2.0.3" />
        <PackageReference Include="Vintasoft.Shared" Version="4.1.0.3" />
      </ItemGroup>
    
    </Project>
    



    El proyecto modificado hace referencia a nuget-packages para VintaSoft Barcode .NET SDK (Vintasoft.Shared.dll, Vintasoft.Barcode.dll, Vintasoft.Barcode.SkiaSharp.dll).

  6. Abra el archivo "Program.cs" y cambie su código al siguiente código C#:
    namespace Generate_Barcode
    {
        class Program
        {
            static void Main(string[] args)
            {
                // register the evaluation license for VintaSoft Barcode .NET SDK
                Vintasoft.Barcode.BarcodeGlobalSettings.Register("%EVAL_LIC_USER_NAME%", "%EVAL_LIC_USER_EMAIL%", "%EVAL_LIC_DATE%", "%EVAL_LIC_REG_CODE%");
    
                // Vintasoft.Barcode.SkiaSharp.dll allows to load bitmap from BMP, DNG, GIF, HEIF, JPEG, PNG, WEBP files using image codecs from SkiaSharp library
                Vintasoft.Barcode.SkiaSharpAssembly.Init();
    
                // generate Code128 barcode as a raster image and save to a PNG file
                GenerateBarcodeAsRasterImage(Vintasoft.Barcode.BarcodeType.Code128, "VintaSoft Barcode .NET SDK", "rasterBarcodeImage.png");
    
                // generate QR barcode as vector image and save to a SVG file
                GenerateBarcodeAsVectorImage(Vintasoft.Barcode.BarcodeType.QR, "VintaSoft Barcode .NET SDK", "vectorBarcode.svg");
            }
    
            /// <summary>
            /// Generates barcode as raster image and saves to an image file.
            /// </summary>
            /// <param name="barcodeType">Barcode type.</param>
            /// <param name="barcodeValue">Barcode value.</param>
            /// <param name="pngFilename">The filename, where barcode image must be saved.</param>
            public static void GenerateBarcodeAsRasterImage(Vintasoft.Barcode.BarcodeType barcodeType, string barcodeValue, string pngFilename)
            {
                // create the barcode writer
                using (Vintasoft.Barcode.BarcodeWriter barcodeWriter = new Vintasoft.Barcode.BarcodeWriter())
                {
                    // set barcode writer settings
                    barcodeWriter.Settings.Barcode = barcodeType;
                    barcodeWriter.Settings.Value = barcodeValue;
    
                    // generate barcode as raster image and save to a PNG file
                    barcodeWriter.SaveBarcodeAsImage(pngFilename);
                }
            }
    
            /// <summary>
            /// Generates barcode in vector form and saves to a SVG file.
            /// </summary>
            /// <param name="barcodeType">Barcode type.</param>
            /// <param name="barcodeValue">Barcode value.</param>
            /// <param name="svgFilename">The filename, where SVG file must be saved.</param>
            public static void GenerateBarcodeAsVectorImage(Vintasoft.Barcode.BarcodeType barcodeType, string barcodeValue, string svgFilename)
            {
                // create the barcode writer
                using (Vintasoft.Barcode.BarcodeWriter barcodeWriter = new Vintasoft.Barcode.BarcodeWriter())
                {
                    // set barcode writer settings
                    barcodeWriter.Settings.Barcode = barcodeType;
                    barcodeWriter.Settings.Value = barcodeValue;
    
                    // generate SVG file
                    string svgFile = barcodeWriter.GetBarcodeAsSvgFile();
    
                    // save SVG file
                    System.IO.File.WriteAllText(svgFilename, svgFile);
                }
            }
    
        }
    }
    



    El código de la aplicación generará el código de barras Code128 como imagen rasterizada y el código de barras QR como vector. Los códigos de barras generados se guardarán en archivos.

  7. Obtenga el código para usar la versión de evaluación en Linux siguiendo el procedimiento descrito en la documentación e inserte el código obtenido en el código C# del archivo "Program.cs".


  8. Abra la terminal y compile el proyecto .NET usando el siguiente comando:
    dotnet build Generate_Barcode.csproj
    



    Cerrar la terminal.

  9. Vaya a la carpeta "bin/Debug/net8.0/".


  10. Abre la terminal y ejecuta la aplicación .NET con el siguiente comando:
    dotnet ./Generate_Barcode.dll
    



    Cierre la terminal y vea los archivos PNG y SVG generados.