The component is used to create the EAN.UCC compisite barcode symbol that uses the CC-B as the 2D symbol. It's defined in the pCCB 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-B is one of the three choices for the 2D symbol in a symbol encoded in the EAN.UCC composite symbology. A CC-B symbol is a MicroPDF417 symbol with a codeword of 920 in the first data position.
The CC-B symbols have two, three, or four data columns (The one-column MicroPDF417 symbol isn't used). The number of columns will be automatically selected depending on the linear symbol that's associated with the CC-B symbol (specified by the Linear property).
Each CC-B symbol consists of a stack of vertically-aligned rows (with a minimum of four and a maximum of forty four rows, referred to as ccbRow_4 to ccbRow_44, for example, the value ccbRow_8 denotations the CC-B symbol is 8 stacked rows, they are defined in the pCCB 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-B symbols shall conform with certain predefined combinations of numbers of rows, columns. These symbol sizes are defined in following table:
Number of data columns | Number of rows | Liner symbol | Max Capacity in Bits | |
---|---|---|---|---|
2 | 8 | ccbRow_8 | RSS-14 Stacked, RSS-14 Stacked Omnidirectional, UPC-E, UPC-E0, UPC-E1 | 59 |
11 | ccbRow_11 | 78 | ||
14 | ccbRow_14 | 88 | ||
17 | ccbRow_17 | 108 | ||
20 | ccbRow_20 | 118 | ||
23 | ccbRow_23 | 138 | ||
26 | ccbRow_26 | 167 | ||
3 | 6 | ccbRow_6 | RSS Limited, EAN-8 | 78 |
8 | ccbRow_8 | 98 | ||
10 | ccbRow_10 | 98 | ||
12 | ccbRow_12 | 118 | ||
15 | ccbRow_15 | 138 | ||
20 | ccbRow_20 | 167 | ||
26 | ccbRow_26 | 167 | ||
32 | ccbRow_32 | 167 | ||
38 | ccbRow_38 | 167 | ||
44 | ccbRow_44 | 167 | ||
4 | 4 | ccbRow_4 | RSS-14 Standard, RSS-14 Truncated, RSS Expanded, RSS Expanded Stacked, UPC-A, EAN-13, EAN-128 | 78 |
6 | ccbRow_6 | 98 | ||
8 | ccbRow_8 | 98 | ||
10 | ccbRow_10 | 98 | ||
12 | ccbRow_12 | 118 | ||
15 | ccbRow_15 | 138 | ||
20 | ccbRow_20 | 167 | ||
26 | ccbRow_26 | 167 | ||
32 | ccbRow_32 | 167 | ||
38 | ccbRow_38 | 167 | ||
44 | ccbRow_44 | 167 |
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.
For the CC-B 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-B 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-B 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):
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):
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):
A separator pattern is required between the linear and 2D symbols of an EAN.UCC composite barcode symbol. If you use the TBarcode2D_CCB 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_CCB 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_CCB component. See digiam (the color of separator patterns are changed to red in order to accentuate them):
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.
Each defined CC-B symbol size has a fixed number of error correction codewords. The error correction codewords provide capability for both error detection and correction.
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.
(*): The Data property, OnInvalidDataLength and OnInvalidDataChar events are available only for the Delphi/C++ Builder 2009 or later.