Zint: Manual

6. Types of symbology

6.3 GS1 Composite Symbols (ISO 24723)

Composite symbols employ a mixture of components to give more comprehensive information about a product. The permissible contents of a composite symbol is determined by the terms of the GS1 General Specifications. Composite symbols consist of a linear component which can be an EAN, UPC, GS1-128 or GS1 DataBar symbol, a two-dimensional (2D) component which is based on PDF417 or MicroPDF417, and a separator pattern. The type of linear component to be used is determined using the -b or --barcode switch (API symbology) as with other encoding methods. Valid values are shown below.

Composite Symbology Values
Numeric Value Name Barcode Name
130 BARCODE_EANX_CC Composite Symbol with EAN linear component
131 BARCODE_GS1_128_CC Composite Symbol with GS1-128 linear component
132 BARCODE_DBAR_OMN_CC Composite Symbol with GS1 DataBar Omnidirectional linear component
133 BARCODE_DBAR_LTD_CC Composite Symbol with GS1 DataBar Limited linear component
134 BARCODE_DBAR_EXP_CC Composite Symbol with GS1 DataBar Expanded linear component
135 BARCODE_UPCA_CC Composite Symbol with UPC-A linear component
136 BARCODE_UPCE_CC Composite Symbol with UPC-E linear component
137 BARCODE_DBAR_STK_CC Composite Symbol with GS1 DataBar Stacked component
138 BARCODE_DBAR_OMNSTK_CC Composite Symbol with GS1 DataBar Stacked Omnidirectional component
139 BARCODE_DBAR_EXPSTK_CC Composite Symbol with GS1 DataBar Expanded Stacked component

The data to be encoded in the linear component of a composite symbol should be entered into a primary string with the data for the 2D component being entered in the normal way. To do this at the command prompt use the --primary switch (API primary). For example:

zint -b EANX_CC --mode=1 --primary=331234567890 -d "[99]1234-abcd"

This creates an EAN-13 linear component with the data "331234567890" and a 2D CC-A (see below) component with the data "(99)1234-abcd". The same results can be achieved using the API as shown below:

my_symbol->symbology = BARCODE_EANX_CC;

my_symbol->option_1 = 1;

strcpy(my_symbol->primary, "331234567890");

ZBarcode_Encode_and_Print(my_symbol, "[99]1234-abcd", 0, 0);

EAN-2 and EAN-5 add-on data can be used with EAN and UPC symbols using the + symbol as described in sections 6.1.3 UPC (Universal Product Code) (ISO 15420) and 6.1.4 EAN (European Article Number) (ISO 15420).

The 2D component of a composite symbol can use one of three systems: CC-A, CC-B and CC-C, as described below. The 2D component type can be selected automatically by Zint dependent on the length of the input string. Alternatively the three methods can be accessed using the --mode prompt (API option_1) followed by 1, 2 or 3 for CC-A, CC-B or CC-C respectively.

6.3.1 CC-A

zint -b EANX_CC --compliantheight -d "[99]1234-abcd" --mode=1 --primary=331234567890

This system uses a variation of MicroPDF417 which is optimised to fit into a small space. The size of the 2D component and the amount of error correction is determined by the amount of data to be encoded and the type of linear component which is being used. CC-A can encode up to 56 numeric digits or an alphanumeric string of shorter length. To select CC-A use --mode=1 (API option_1 = 1).

6.3.2 CC-B

zint -b EANX_CC --compliantheight -d "[99]1234-abcd" --mode=2 --primary=331234567890

This system uses MicroPDF417 to encode the 2D component. The size of the 2D component and the amount of error correction is determined by the amount of data to be encoded and the type of linear component which is being used. CC-B can encode up to 338 numeric digits or an alphanumeric string of shorter length. To select CC-B use --mode=2 (API option_1 = 2).

6.3.3 CC-C

zint -b GS1_128_CC --compliantheight -d "[99]1234-abcd" --mode=3 --primary="[01]03312345678903"

This system uses PDF417 and can only be used in conjunction with a GS1-128 linear component. CC-C can encode up to 2361 numeric digits or an alphanumeric string of shorter length. To select CC-C use --mode=3 (API option_1 = 3).