VintaSoft Barcode .NET SDK を使用して GS1 アプリケーション識別子を分析

ブログ カテゴリ: バーコード.NET

2025/06/17

現代の物流、小売、医療、製造業では、アプリケーション識別子 (AI) を含む GS1 標準は、バーコードでデータを構造化する汎用ツールになっています。このようなコードを効果的に操作するには、文字列を読み取るだけでなく、コンテンツを正しく解析して、各アプリケーション識別子とそれに関連付けられたデータを選択することが重要です。VintaSoft Barcode .NET SDK ソフトウェア製品は、GS1 標準に従って情報を分析および構造化するための強力なツールを提供します。

GS1アプリケーション識別子とは何か、そしてなぜ分析する必要があるのか​​

GS1アプリケーション識別子は、バーコード内の実際のデータの前に配置される短い数字のプレフィックス(通常2~4桁)です。各プレフィックスは、国際取引商品番号(GTIN)、製造日、有効期限、重量、シリアル番号など、情報の種類を一意に識別します。これらの識別子を正しく解釈することで、会計、販売、流通、流通などの目的で、バーコードから構造化された明確な情報を自動的に抽出することができます。

GS1 識別子がサポートするバーコード形式

アプリケーション識別子を含む GS1 標準は、多くのバーコード シンボル システムで使用されます。

これらは、エンドツーエンドの追跡可能性と自動化を確実にするために、世界中の大企業で最もよく使用される形式です。

VintaSoft Barcode .NET SDK を使用した GS1 識別子分析の仕組み

VintaSoft Barcode .NET SDK ソフトウェア パッケージを使用すると、あらゆる種類のバーコードをすばやく読み取ることができるだけでなく、GS1 標準に従ってデータ行を自動的に解析することもできます。

分析の主な段階:

ビジネスへの応用とメリット

VintaSoft Barcode .NET SDKによるGS1アプリケーション識別子の分析は、企業にとって新たな自動化と制御の機会をもたらします。このソリューションはビジネスプロセスチェーンに容易に統合でき、商品移動の会計処理を容易にし、高いレベルのデータ信頼性を確保します。

実用的なメリット:

このようなツールを使用すると、企業はコストを削減できるだけでなく、サービスの品質を向上させ、商品の処理を高速化し、プロセスをより透明かつ最新のものにすることができます。

結論

GS1 アプリケーション識別子の分析と解析は、小売、物流、医療の分野での最新の自動化および会計プロセスに不可欠な部分です。

VintaSoft Barcode .NET SDK は、GS1 グローバル スタンダードに準拠した複雑なバーコードをスキャンおよび分析するための汎用的で柔軟性が高く、高性能なソリューションを提供します。幅広い形式のサポート、構造化データの自動解析、既存システムへの簡単な統合により、VintaSoft ソリューションは、企業のプロセスの透明性の向上と運用コストの削減に役立ちます。

VintaSoft Barcode .NET SDK の機能と統合例の詳細については、VintaSoft 公式 Web サイト にアクセスするか、同社のサポート サービスにお問い合わせください。


GS1 情報 (GS1-128) を含む Code128 バーコード イメージを生成し、生成されたイメージ内の GS1-128 バーコードを認識する C# コードを以下に示します。
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());
                }
            }
        }
    }
}