Analyse des identifiants d'application GS1 à l'aide du VintaSoft Barcode .NET SDK

Catégorie du blog: Code-barres.NET

17.06.2025

Dans la logistique moderne, le commerce de détail, la médecine et l'industrie manufacturière, les normes GS1, notamment les identifiants d'application (AI), sont devenues un outil universel pour structurer les données des codes-barres. Pour exploiter efficacement ces codes, il est essentiel non seulement de lire une chaîne de caractères, mais aussi d'en analyser correctement le contenu, c'est-à-dire de sélectionner chaque identifiant d'application et les données qui lui sont associées. Le logiciel VintaSoft Barcode .NET SDK offre un outil puissant pour analyser et structurer les informations conformément à la norme GS1.

Que sont les identifiants d'application GS1 et pourquoi les analyser?

Les identifiants d'application GS1 sont de courts préfixes numériques (généralement de 2 à 4 chiffres) placés dans le code-barres avant les données proprement dites. Chaque préfixe identifie de manière unique le type d'information, comme un numéro GTIN (Global Trade Item Number), une date de production, une date de péremption, un poids, un numéro de série, etc. L'interprétation correcte de ces identifiants permet l'extraction automatique d'informations structurées et non ambiguës à partir du code-barres, à des fins de comptabilité, de suivi et d'automatisation des processus d'entreprise.

Quels formats de codes-barres les identifiants GS1 prennent-ils en charge?

Les normes GS1 avec identifiants d'application sont utilisées dans de nombreux systèmes de symboles de codes-barres:

Ce sont les formats les plus fréquemment utilisés par les grandes entreprises du monde entier pour garantir une traçabilité et une automatisation de bout en bout.

Fonctionnement de l'analyse des identifiants GS1 avec VintaSoft Barcode .NET SDK

Le logiciel VintaSoft Barcode .NET SDK permet non seulement de lire rapidement tout type de code-barres, mais aussi d'analyser automatiquement les lignes de données conformément à la norme GS1.

Principales étapes de l'analyse:

Application et avantages pour les entreprises

L'analyse des identifiants d'application GS1 avec VintaSoft Barcode .NET SDK ouvre de nouvelles perspectives d'automatisation et de contrôle pour les entreprises. La solution s'intègre facilement à la chaîne de processus métier, facilite la comptabilisation des mouvements de marchandises et garantit un haut niveau de fiabilité des données.

Parmi les avantages pratiques:

L'utilisation d'un tel outil permet aux entreprises non seulement de réduire leurs coûts, mais aussi d'améliorer la qualité de leurs services, d'accélérer le traitement des marchandises et de moderniser leurs processus.

Conclusion

L'analyse et l'interprétation des identifiants d'application GS1 font partie intégrante des processus modernes d'automatisation et de comptabilité dans les secteurs du commerce de détail, de la logistique et de la santé.

VintaSoft Barcode .NET SDK offre une solution universelle, flexible et performante pour la numérisation et l'analyse de codes-barres complexes conformes aux normes internationales GS1. Grâce à la prise en charge d'un large éventail de formats, à l'analyse automatique des données structurées et à une intégration facile aux systèmes existants, les solutions VintaSoft aident les entreprises à accroître la transparence de leurs processus et à réduire leurs coûts opérationnels.

Pour plus d'informations sur les capacités du VintaSoft Barcode .NET SDK et des exemples d'intégration, veuillez visiter le site Web officiel de VintaSoft ou contacter le service d'assistance de l'entreprise.


Voici un code C# qui montre comment générer une image de code-barres Code 128 avec les informations GS1 (GS1-128) et reconnaître un code-barres GS1-128 dans l'image générée:
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());
                }
            }
        }
    }
}