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.
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
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
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
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).