Analice los identificadores de aplicaciones GS1 utilizando VintaSoft Barcode .NET SDK

Categoría del blog: Barcode.NET

17.06.2025

En la logística, el comercio minorista, la medicina y la manufactura modernos, los estándares GS1, incluyendo los Identificadores de Aplicación (IA), se han convertido en una herramienta universal para estructurar datos en códigos de barras. Para trabajar eficazmente con estos códigos, es fundamental no solo leer una cadena de caracteres, sino también analizar correctamente el contenido para seleccionar cada identificador de aplicación y los datos asociados. El software VintaSoft Barcode .NET SDK proporciona una potente herramienta para analizar y estructurar información de acuerdo con el estándar GS1.

¿Qué son los identificadores de aplicación GS1 y por qué analizarlos?

Los Identificadores de Aplicación GS1 son prefijos numéricos cortos (generalmente de 2 a 4 dígitos) que se colocan en el código de barras antes de los datos. Cada prefijo identifica de forma única el tipo de información, como el Número Global de Artículo Comercial (GTIN), la fecha de producción, la fecha de caducidad, el peso, el número de serie, etc. La correcta interpretación de estos identificadores permite la extracción automática de información estructurada e inequívoca del código de barras para la contabilidad, el seguimiento y la automatización de los procesos empresariales.

¿Qué formatos de códigos de barras admiten los identificadores GS1?

Los estándares GS1 con identificadores de aplicación se utilizan en muchos sistemas de símbolos de código de barras:

Estos son los formatos más utilizados por las grandes empresas de todo el mundo para garantizar la trazabilidad y la automatización de extremo a extremo.

Cómo funciona el análisis de identificadores GS1 con VintaSoft Barcode .NET SDK

El paquete de software VintaSoft Barcode .NET SDK permite no solo leer rápidamente cualquier tipo de código de barras, sino también analizar automáticamente líneas de datos de acuerdo con el estándar GS1.

Principales etapas del análisis:

Aplicación y beneficios para las empresas

El análisis de identificadores de aplicaciones GS1 con VintaSoft Barcode .NET SDK abre nuevas oportunidades de automatización y control para las empresas. La solución se integra fácilmente en la cadena de procesos de negocio, facilita la contabilización del movimiento de mercancías y garantiza un alto nivel de fiabilidad de los datos.

Entre las ventajas prácticas:

El uso de esta herramienta ayuda a las empresas no sólo a reducir costes, sino también a mejorar la calidad de los servicios, acelerar el procesamiento de bienes y hacer que los procesos sean más transparentes y modernos.

Conclusión

El análisis y análisis de los identificadores de aplicaciones GS1 es una parte integral de los procesos de automatización y contabilidad modernos en el comercio minorista, la logística y la atención médica.

El VintaSoft Barcode .NET SDK ofrece una solución universal, flexible y de alto rendimiento para escanear y analizar códigos de barras complejos que cumplen con los estándares globales GS1. Gracias a su compatibilidad con una amplia gama de formatos, el análisis automático de datos estructurados y su fácil integración en sistemas existentes, las soluciones VintaSoft ayudan a las empresas a aumentar la transparencia de sus procesos y reducir los costos operativos.

Para obtener más información sobre las capacidades de VintaSoft Barcode .NET SDK y ejemplos de integración, visite el sitio web oficial de VintaSoft o comuníquese con el servicio de soporte de la empresa.


Aquí hay un código C# que demuestra cómo generar una imagen de código de barras Code128 con información GS1 (GS1-128) y reconocer un código de barras GS1-128 en la imagen generada:
using System;
using System.Text;

using Vintasoft.Barcode;
using Vintasoft.Barcode.BarcodeInfo;
using Vintasoft.Barcode.GS1;
using Vintasoft.Barcode.SymbologySubsets;
using Vintasoft.Imaging;

/// <summary>
/// Test that shows how to encode the barcode data in GS1 format using the GS1Codec class,
/// create image with GS1-128 barcode,
/// read GS1-128 barcode from image and
/// parse data stored in GS1 format.
/// </summary>
class GS1CodecExample
{

    /// <summary>
    /// Runs the test.
    /// </summary>
    public static void TestGS1Codec()
    {
        bool valueVisible = true;

        // form the GS1 Application identifiers

        GS1ApplicationIdentifierValue[] aiValues = new GS1ApplicationIdentifierValue[4];
        GS1ApplicationIdentifier ai;
        // 01 - Global Trade Item Number
        ai = GS1ApplicationIdentifiers.FindApplicationIdentifier("01");
        aiValues[0] = new GS1ApplicationIdentifierValue(ai, "0123456789123C");
        // 310 - Net weight, kilograms
        ai = GS1ApplicationIdentifiers.FindApplicationIdentifier("310");
        aiValues[1] = new GS1ApplicationIdentifierValue(ai, "0012.55");
        // 30 - Count of Items
        ai = GS1ApplicationIdentifiers.FindApplicationIdentifier("30");
        aiValues[2] = new GS1ApplicationIdentifierValue(ai, "10");
        // 90 - Company Internal Information
        ai = GS1ApplicationIdentifiers.FindApplicationIdentifier("90");
        aiValues[3] = new GS1ApplicationIdentifierValue(ai, "ABCabc12345");

        // get GS1 printable value
        StringBuilder printableValue = new StringBuilder();
        foreach (GS1ApplicationIdentifierValue value in aiValues)
            printableValue.Append(value);


        // create the barcode writer
        using (BarcodeWriter writer = new BarcodeWriter())
        {
            // specify that writer must create output image as 24-bpp image
            writer.Settings.PixelFormat = BarcodeImagePixelFormat.Bgr24;

            // specify that writer must generate Code128 barcode
            writer.Settings.Barcode = BarcodeType.Code128;

            // encode GS1 value in GS1-128 symbology
            writer.Settings.Value = GS1Codec.GS1_128.Encode(aiValues, writer.Settings);
            // set printable value
            if (valueVisible)
            {
                writer.Settings.ValueVisible = true;
                writer.Settings.PrintableValue = printableValue.ToString();
            }
            else
            {
                writer.Settings.ValueVisible = false;
            }

            // create image with barcode
            using (VintasoftBitmap barcodeImage = writer.GetBarcodeAsVintasoftBitmap())
            {
                // delete aiValues array
                aiValues = null;

                // create barcode reader
                using (BarcodeReader reader = new BarcodeReader())
                {
                    // specify that reader must search for GS1-128 barcodes only

                    reader.Settings.ScanBarcodeTypes = BarcodeType.None;
                    reader.Settings.ScanBarcodeSubsets.Add(BarcodeSymbologySubsets.GS1_128);

                    // read barcode from image
                    IBarcodeInfo[] infos = reader.ReadBarcodes(barcodeImage);

                    // gets a GS1 Application identifiers from barcode value
                    aiValues = ((GS1BarcodeInfo)infos[0]).ApplicationIdentifierValues;

                    printableValue = new StringBuilder();

                    // print Application identifiers values
                    for (int i = 0; i < aiValues.Length; i++)
                    {
                        GS1ApplicationIdentifierValue aiValue = aiValues[i];
                        ai = aiValue.ApplicationIdentifier;
                        Console.WriteLine(string.Format("[{0}] {1}", i + 1, aiValue));
                        Console.WriteLine(string.Format("Application identifier   : {0}", ai.ApplicationIdentifier));
                        Console.WriteLine(string.Format("Value                    : {0}", aiValue.Value));
                        Console.WriteLine(string.Format("Data title               : {0}", ai.DataTitle));
                        Console.WriteLine(string.Format("Data content             : {0}", ai.DataContent));
                        Console.WriteLine(string.Format("Format                   : {0}", ai.Format));
                        Console.WriteLine(string.Format("Is contains decimal point: {0}", ai.IsContainsDecimalPoint));
                        Console.WriteLine(string.Format("Is variable length       : {0}", ai.IsVariableLength));
                        Console.WriteLine();
                        printableValue.Append(aiValue.ToString());
                    }

                    // print GS1 printable value
                    Console.WriteLine("Printable GS1 value: " + printableValue.ToString());
                }
            }
        }
    }
}