bwip.js: How to use the Group Separator character with GS1-128

555 views Asked by At

There is a service hosted on for generating barcodes metafloor.com using bwip.js I want to generate a barcode for following data (GS character is represent by {GS}).

(01)10875066000333(10)1212{GS}(17)121212(30)8{GS}

According the documentation I'm able to generate a barcode for data without GS character

https://bwipjs-api.metafloor.com/?bcid=gs1-128&text=(01)10875066000333(10)1212(17)121212(30)8

But the scanner require GS characters.

The documentation is clear

  1. Special characters must be encoded in format ^NNN
  2. Parse option has to be true, by using parsefnc parameter
  3. The parameter has to be URL-encoded.

So for my string it's:

https://bwipjs-api.metafloor.com/?bcid=gs1-128&text=(01)10875066000333(10)1212%5E029(17)121212(30)8%5E029&parsefnc

But this gives me Error: bwipp.GS1badCSET82character: AI 10: Invalid CSET 82 character. I also tried

  1. Send GS char directly as %1D
  2. Send GS char as %5EGS
  3. Send GS char as ^029
  4. Send GS char directly
  5. Set parsefnc=true
  6. Combination of all above

But still getting the same error.

Is there something I'm doing wrong or is the problem on the other side?

1

There are 1 answers

6
Terry Burton On BEST ANSWER

For GS1 Application Identifier based data, trust the library to encode the data correctly by selecting the GS1-specific encoder for the symbology (gs1datamatrix in this case) and then provide the input in bracketed AI notation, i.e. without FNC1 / GS separators.

The encoder will automatically add all of the necessary FNC1 non-data characters (which are transmitted as ASCII GS characters when read by a scanner) and it will also validate the contents of the AI data that you supply.

Users that select a generic symbology and then attempt to perform the AI encoding themselves are prone to making several mistakes:

  • Omitting the required FNC1 in first position.
  • Omitting the required FNC1 separators at the end of AIs with no pre-determined width.
  • Terminating pre-defined length AIs with unnecessary FNC1 characters.
  • Terminating the message with an unnecessary FNC1 character.
  • Encoding ASCII GS data characters instead of the canonical FNC1 non-data characters.
  • Including illegal, literal parentheses to denote the AIs.
  • Providing improperly formatted or invalid AI values.
  • Omitting requisite AI attributes.
  • Including mutually-exclusive AI pairings.

Many of these mistakes will result in failure to decode and interpret the GS1 AI data (even if the barcode appears to read successfully) which may result in charge-backs and necessitate relabelling or disposal.

The data that you are providing falls afoul of at least some of these pitfalls.

See this article for a thorough description of the checks that BWIPP (and hence BWIP-JS) implements to prevent such data quality issues.