GS1-Anwendungskennungen mit dem VintaSoft Barcode .NET SDK analysieren

Blog-Kategorie: Barcode.NET

17.06.2025

In der modernen Logistik, im Einzelhandel, in der Medizin und in der Fertigung haben sich GS1-Standards, einschließlich Anwendungskennungen (AI), zu einem universellen Werkzeug für die Strukturierung von Daten in Barcodes entwickelt. Für die effektive Arbeit mit solchen Codes ist es entscheidend, nicht nur eine Zeichenkette zu lesen, sondern auch deren Inhalt korrekt zu analysieren - also jede Anwendungskennung und die zugehörigen Daten auszuwählen. Das VintaSoft Barcode .NET SDK bietet ein leistungsstarkes Werkzeug zur Analyse und Strukturierung von Informationen gemäß dem GS1-Standard.

Was sind GS1-Anwendungskennungen und warum werden sie analysiert?

GS1-Anwendungskennungen sind kurze numerische Präfixe (in der Regel 2-4 Ziffern), die im Barcode vor den eigentlichen Daten platziert werden. Jedes Präfix identifiziert eindeutig die Art der Information, z. B. eine Global Trade Item Number (GTIN), Produktionsdatum, Verfallsdatum, Gewicht, Seriennummer usw. Die korrekte Interpretation dieser Kennungen ermöglicht die automatische Extraktion strukturierter, eindeutiger Informationen aus dem Barcode für Buchhaltung, Nachverfolgung und Automatisierung von Unternehmensprozessen.

Welche Barcode-Formate werden von GS1-Kennungen unterstützt?

GS1-Standards mit Anwendungskennungen werden in vielen Barcode-Symbolsystemen verwendet:

Dies sind die Formate, die von großen Unternehmen weltweit am häufigsten verwendet werden, um durchgängige Rückverfolgbarkeit und Automatisierung zu gewährleisten.

So funktioniert die GS1-Identifikationsanalyse mit dem VintaSoft Barcode .NET SDK

Das VintaSoft Barcode .NET SDK-Softwarepaket ermöglicht nicht nur das schnelle Lesen beliebiger Barcode-Typen, sondern auch das automatische Parsen von Datenzeilen gemäß dem GS1-Standard.

Hauptphasen der Analyse:

Anwendung und Vorteile für Unternehmen

Die Analyse von GS1-Anwendungskennungen mit dem VintaSoft Barcode .NET SDK eröffnet Unternehmen neue Automatisierungs- und Kontrollmöglichkeiten. Die Lösung lässt sich einfach in die Geschäftsprozesskette integrieren, erleichtert die Erfassung von Warenbewegungen und gewährleistet eine hohe Datenzuverlässigkeit.

Zu den praktischen Vorteilen gehören:

Der Einsatz eines solchen Tools hilft Unternehmen nicht nur, Kosten zu senken, sondern auch die Servicequalität zu verbessern, die Warenabwicklung zu beschleunigen und Prozesse transparenter und moderner zu gestalten.

Fazit

Die Analyse und das Parsen von GS1-Anwendungskennungen sind integraler Bestandteil moderner Automatisierungs- und Buchhaltungsprozesse im Einzelhandel, in der Logistik und im Gesundheitswesen.

Das VintaSoft Barcode .NET SDK bietet eine universelle, flexible und leistungsstarke Lösung zum Scannen und Analysieren komplexer Barcodes, die den globalen GS1-Standards entsprechen. Dank der Unterstützung einer Vielzahl von Formaten, dem automatischen Parsen strukturierter Daten und der einfachen Integration in bestehende Systeme tragen die Lösungen von VintaSoft dazu bei, die Prozesstransparenz zu erhöhen und die Betriebskosten zu senken.

Weitere Informationen zu den Funktionen des VintaSoft Barcode .NET SDK und Integrationsbeispiele finden Sie auf der offiziellen VintaSoft-Website oder wenden Sie sich an den Support des Unternehmens.


Hier ist ein C#-Code, der zeigt, wie man ein Code128-Barcodebild mit GS1-Informationen (GS1-128) generiert und einen GS1-128-Barcode im generierten Bild erkennt:
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());
                }
            }
        }
    }
}