Search code examples
barcodebarcode-scannerbarcode-printinggs1-ai-syntaxgs1-128

EAN-128/GS1-128 barcode conflict


I am trying to generate EAN-128 (GS1-128) barcode labels to label a product.

I have found some online barcode generators that allow to do this task.

However, I am experiencing some conflicts between many web pages.

I mean: for the same code data, two different online applicatinos generates two different barcode images.

Sample barcodes generated for the same data in different applications (both are readable with my barcode scanner): (01)08456789014530(15)081213

enter image description here

If you check the bars, they are different. How can I know which is the correct generated barcode?


Solution

  • I've disassembled the bars and spaces in each code above. There is a significant difference in the quality of the codes from an anti-aliased perspective. The bottom code is smoother and more scalable, and for that reason alone, I would select the barcode rendered on the bottom. Here is the rundown of the actual data encoded in each barcode:

    
        Top Barcode:
        Binary         Val    Code
        11010011100 == 105 == Start C 
        11110101110 == 102 == [FNC 1] 
        11110101110 == 102 == [FNC 1] 
        11001101100 == 1 == 01 GS1 (GTIN)
        10001100100 == 8 == 08 
        10111011000 == 45 == 45 
        10000101100 == 67 == 67 
        11011011110 == 89 == 89 
        11001101100 == 1 == 01 
        10111011000 == 45 == 45 
        11011011000 == 30 == 30 
        11110101110 == 102 == [FNC 1] 
        10111001100 == 15 == GS1 (BestB4Date)
        10001100100 == 8 == 08 
        10110011100 == 12 == 12 
        10011011100 == 13 == 13 
        11101100010 == 58 == Checksum 
        1100011101011 == 106 == End 
    
        Breaks down to [Code 128C][FNC 1][FNC 1]0108456789014530[FNC 1]15081213[Chk=58][Stop]
    
    
        Bottom Barcode
        Binary         Val    Code
        11010011100 == 105 == Start C 
        11110101110 == 102 == [FNC 1] 
        11001101100 == 1 == 01 GS1 (GTIN)
        10001100100 == 8 == 08 
        10111011000 == 45 == 45 
        10000101100 == 67 == 67 
        11011011110 == 89 == 89 
        11001101100 == 1 == 01 
        10111011000 == 45 == 45 
        11011011000 == 30 == 30 
        10111001100 == 15 == GS1 (BestB4Date)
        10001100100 == 8 == 08 
        10110011100 == 12 == 12 
        10011011100 == 13 == 13 
        11101011110 == 101 == Checksum 
        1100011101011 == 106 == End 
    
        Breaks down to [Code 128C][FNC 1]010845678901453015081213[Chk=101][Stop]
    
    

    As you can see, the top barcode, while narrower, contains more data, but it is excess data (i.e. two extra [FNC 1] codes).