VintaSoft Barcode .NET SDK를 사용하여 GS1 애플리케이션 식별자를 분석합니다.

블로그 카테고리: 바코드.NET

2025/06/17

현대 물류, 소매, 의료 및 제조 분야에서 애플리케이션 식별자(AI)를 포함한 GS1 표준은 바코드의 데이터 구조화를 위한 보편적인 도구가 되었습니다. 이러한 코드를 효과적으로 사용하려면 문자열을 읽는 것뿐만 아니라 내용을 정확하게 분석하여 각 애플리케이션 식별자와 관련된 데이터를 선택하는 것이 중요합니다. VintaSoft Barcode .NET SDK 소프트웨어 제품은 GS1 표준에 따라 정보를 분석하고 구조화하는 강력한 도구를 제공합니다.

GS1 애플리케이션 식별자란 무엇이며 분석해야 하는가?

GS1 애플리케이션 식별자는 바코드의 실제 데이터 앞에 배치되는 짧은 숫자 접두사(일반적으로 2~4자리)입니다. 각 접두사는 GTIN(Global Trade Item Number), 생산일, 만료일, 중량, 일련번호 등과 같은 정보 유형을 고유하게 식별합니다. 이러한 식별자를 올바르게 해석하면 바코드에서 구조화되고 명확한 정보를 자동으로 추출하여 회계, 추적 및 기업 프로세스 자동화에 활용할 수 있습니다.

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 공식 웹사이트를 방문하거나 회사 지원 서비스에 문의하십시오.


다음은 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());
                }
            }
        }
    }
}