TBarcode2D_CCA

EAN.UCC composite barcode symbol (CC-A)The component is used to create the EAN.UCC compisite barcode symbol that uses the CC-A as the 2D symbol. It's defined in the pCCA unit.

An EAN.UCC composite symbol consists of a linear symbol (encoding the item's primary identification) associated with an adjacent 2D symbol (encoding supplementary data, such as a batch number or expiration date). The CC-A is one of the three choices for the 2D symbol in a symbol encoded in the EAN.UCC composite symbology. It's a multi-row symbology component derived from MicroPDF417, for use only in EAN.UCC composite symbols. It's designed for efficient encoding of supplemental application identifier data.


Symbol sizes

The CC-A symbols have two, three, or four data columns. The number of columns will be automatically selected depending on the linear symbol that's associated with the CC-A symbol (specified by the Linear property).

Each CC-A symbol consists of a stack of vertically-aligned rows (with a minimum of three and a maximum of twelve rows, referred to as ccaRow_3 to ccaRow_10, and ccaRow_12, for example, the value ccaRow_5 denotations the CC-A symbol is 5 stacked rows, they are defined in the pCCA unit). The RowHeight property can be used to specify the height for each row, in modules. The allowable numbers of rows are specified separately for each of the two-, three-, and four-column symbol sizes. In other words, CC-A symbols shall conform with certain predefined combinations of numbers of rows, columns. These symbol sizes are defined in following table:

Number of data columnsNumber of rowsLiner symbolMax Capacity in Bits
25ccaRow_5RSS-14 Stacked, RSS-14 Stacked Omnidirectional, UPC-E, UPC-E0, UPC-E159
6ccaRow_678
7ccaRow_788
8ccaRow_8108
9ccaRow_9118
10ccaRow_10138
12ccaRow_12167
34ccaRow_4RSS Limited, EAN-878
5ccaRow_598
6ccaRow_6118
7ccaRow_7138
8ccaRow_8167
43ccaRow_3RSS-14 Standard, RSS-14 Truncated, RSS Expanded, RSS Expanded Stacked, UPC-A, EAN-13, EAN-12878
4ccaRow_4108
5ccaRow_5138
6ccaRow_6167
7ccaRow_7197

You can use the MinRows property to specify a minimum number of stacked rows, and use the MaxRows property to specifiy a maximum number of stacked rows. the smallest number of stacked rows that accommodates the barcode text will be automatically selected between the minimum and the maximum number of stacked rows.

You can use the CurrentRows property to get the factual number of stacked rows.

If the barcode text is so long that it cannot be encoded using the maximum number of stacked rows specified by the MaxRows property, an OnInvalidLength or OnInvalidDataLength (only for Delphi/C++ Builder 2009 or later) event will occur.


Quiet zones

For the CC-A symbol, The leading quiet zone and trailing quiet zone shall be a minimum of 1 modules. No top quiet zone and bottom quiet zone are required outside the bounds of the CC-A symbol.

The LeadingQuietZone, TrailingQuietZone, TopQuietZone, and BottomQuietZone properties specify the size of quiet zones for entire EAN.UCC composite symbol, they are not only for the CC-A 2D symbol. So the minimum values of these properties are equal to 0. See diagram (the SpaceColor property value is set to clSilver in order to accentuate the quiet zones):

Quiet zones of EAN.UCC composite barcode symbol (CC-A)

If the linear component is the TBarcode1D_UPCE, TBarcode1D_UPCE0, TBarcode1D_UPCE1, TBarcode1D_UPCA, TBarcode1D_ENA8, or TBarcode1D_EAN13, and its left quiet zone mark is represented (the TextAlignment property's value is set to taCustom, and for the TBarcode1D_ENA8 component, the ShowQuietZoneMark property is set to true too), the leading quiet zone will be represented even if the ShowQuietZone property is set to false, the minimum width of leading quiet zone that is the distance between the left side of the left quiet zone mark of the linear symbol and the first bar of the 2D symbol will be used. Similarly, if its right quiet zone mark is represented (the TextAlignment property's value is set to taCustom, and for the TBarcode1D_ENA8 and TBarcode1D_EAN13 components, the ShowQuietZoneMark property is set to true too), the trailing quiet zone will be represented even if the ShowQuietZone property is set to false, the minimum width of trailing quiet zone that is the distance between the last bar of the 2D symbol and the right side of the right quiet zone mark of the linear symbol will be used. In other words, the leading and trailing quiet zoens will be automatically extanded to cover the left and right quiet zone marks, regardless of whether the ShowQuietZone property is set to true or false. See diagram (the SpaceColor property value is set to clSilver in order to accentuate the quiet zones):

CC-A Quiet Zones (TextAlignment = taCustom)

If the linear component is the TBarcode1D_UPCE, TBarcode1D_UPCE0, TBarcode1D_UPCE1, TBarcode1D_UPCA, TBarcode1D_ENA8, TBarcode1D_EAN13, or TBarcode1D_EAN128, and its human readable text is represented and exceeds the beginning or end of entire EAN.UCC barcode symbol (the leading and trailing quiet zones is included if the ShowQuietZone property is set to true), the leading and trailing quiet zoens will be extanded automatically to cover the human readable text, regardless of whether the ShowQuietZone property is set to true or false. See diagram (the SpaceColor property value is set to clSilver in order to accentuate the quiet zones):

CC-A Quiet Zones (Text exceeds bounds)


Separator pattern

A separator pattern is required between the linear and 2D symbols of an EAN.UCC composite barcode symbol. If you use the TBarcode2D_CCA component together with a TBarcode2D_RSS14, TBarcode2D_RSSLimited, TBarcode2D_RSSExpanded, or TBarcode1D_EAN128 linear barcode component (specified by the Linear property), the separator pattern will be represented by the linear component. If you use the TBarcode2D_CCA component together with a TBarcode1D_UPCA, TBarcode1D_UPCE, TBarcode1D_UPCE0, TBarcode1D_UPCE1, TBarcode1D_EAN8, or TBarcode1D_EAN13 linear barcode component (specified by the Linear property), the separator pattern will be represented by the TBarcode2D_CCA component. See digiam (the color of separator patterns are changed to red in order to accentuate them):

Separator pattern of EAN.UCC composite barcode symbol (CC-A)

Note, the TBarcode1D_UPCA, TBarcode1D_UPCE, TBarcode1D_UPCE0, TBarcode1D_UPCE1, TBarcode1D_EAN8, TBarcode1D_EAN13, and TBarcode1D_EAN128 linear components are in the Barcode VCL Components package.


Error checking and correcting (ECC)

Each defined CC-A symbol size has a fixed number of error correction codewords. The error correction codewords provide capability for both error detection and correction.


Character set

A subset of ISO/IEC 646, consisting of the upper and lower case letters (A-Z, a-z), digits (0-9), space, and 19 selected punctuation characters (!:%&()*+,-./:;<=>?_) in addition to the special function characters, FNC1 and symbol separator.

If you want insert the FNC1, please insert the "^" character instead. And if you want insert the symbol separator, please insert the "#" character instead.

Note, in the barcode text, all Application Identifiers should be enclosed in parentheses "(" and ")", the parentheses are only for identifying Application Identifiers, and they are not encoded into the barcode symbol. If you want encode the parentheses "(" and ")" in an Application Identifier element string, please use the "{" and "}" instead.


Properties:
Methods:
Events:

(*): The Data property, OnInvalidDataLength and OnInvalidDataChar events are available only for the Delphi/C++ Builder 2009 or later.

Contents