(TBarcode2D_CCC)
Specifies the priority order of selecing appropriate symbol size for the CC-C component of an EAN.UCC composite barcode symbol.
type
{ Defined in the pCCC unit }
TCCC_StretchOrder = (soMaxColumnsInLinear, soMaxColumnsOutLinear, soRowColumn, soColumnRow);
property StretchOrder: TCCC_StretchOrder;
The minimum number of stacked rows (specified by the MinRows property) and the minimum number of columns (specified by the MinColumns property) indicates the minimum symbol size for the CC-C 2D component of an EAN.UCC composite barcode symbol. And the maximum number of stacked rows (specified by the MaxRows property) together with the maximum number of columns (specified by the MaxColumns property) indicates the maximum symbol size for it. The property specifies a priority order in order to automatically select the symbol size. According to the priority order, the first symbol size (number of rows and columns) that accommodates the barcode text will be automatically selected between the minimum symbol size and the maximum symbol size.
The property can be one of these values (defined in the pCCC unit):
soMaxColumnsInLinear: The maximum number of columns that enables the CC-C 2D component (including those for the start and stop patterns and row indicators) to fit within the lateral boundaries of the linear component (including its quiet zones) will be chosen. If the maximum number of columns is greater than the value of MaxColumns property, the MaxColumns property's value will be used as the final chosen number of columns.
According to the final chosen number of columns and the error checking and correcting level specified by the ECCLevel property, the minimum number of stacked rows that accommodates the barcode text will be automatically chosen. If the minimum number of stacked rows is less than the value of MinRows property, the MinRows property's value will be used as the final chosen number of stacked rows. If the barcode text cannot be accommodated by the maximum symbol size (specified by the MaxColumns and MaxRows properties), an OnInvalidLength (the barcode text is specified in the Barcode property) or OnInvalidDataLength (only for Delphi/C++ Builder 2009 or later, and the barcode text is specified in the Data property) event will occur.
soMaxColumnsOutLinear: Create a wider CC-C symbol that exceedsthe right bound of the trailing quiet zone of the linear component in order to minimize the height of the CC-C 2D component.
Between the minimum symbol size (specified by the MinColumns and MinRows properties) and the maximum symbol size (specified by the MaxColumns and MaxRows properties), only symbol sizes that their total number of CC-C columns is less than four times the number of stacked rows will be used in order to avoid very large width to height ratios and maintain angular tolerance for single-line scanners. According to the data capacity, in increasing order of recovery capacity, the smallest symbol size that accommodates the barcode text and the error checking and correcting level (specified by the ECCLevel property) will be automatically selected. If the barcode text cannot be accommodated by the maximum symbol size (specified by the MaxColumns and MaxRows properties), an OnInvalidLength (the barcode text is specified in the Barcode property) or OnInvalidDataLength (only for Delphi/C++ Builder 2009 or later, and the barcode text is specified in the Data property) event will occur.
soRowColumn: If the CC-C symbol that use minimum symbol size (specified by the MinColumns and MinRows properties) cannot accommodate the barcode text, the number of stacked rows will be increased firstly until it reachs the maximum number of stacked rows (specified by the MaxRows property) or the barcode text is accommodated by the symbol. If the number of stacked rows has reached the maximum number of stacked rows (specified by the MaxRows property) but the barcode text cannot yet be accommodated, the number of columns will be increased and the number of stacked rows will be reset to minimum number of stacked rows (specified by the MinRows property). Repeat these until the barcode text is accommodated by the symbol, or not only does the number of stacked rows reach maximum number of stacked rows (specified by the MaxRows property), but also the number of columns reachs maximum number of columns (specified by the MaxColumns property), in this case (the barcode text cannot always be accommodated), an OnInvalidLength (the barcode text is specified in the Barcode property) or OnInvalidDataLength (only for Delphi/C++ Builder 2009 or later, and the barcode text is specified in the Data property) event will occur. See diagram:
soColumnRow: If the CC-C symbol that use minimum symbol size (specified by the MinColumns and MinRows properties) cannot accommodate the barcode text, the number of columns will be increased firstly until it reachs the maximum number of columns (specified by the MaxColumns property) or the barcode text is accommodated by the symbol. If the number of columns has reached the maximum number of columns (specified by the MaxColumns property) but the barcode text cannot yet be accommodated, the number of stacked rows will be increased and the number of columns will be reset to minimum number of columns (specified by the MinColumns property). Repeat these until the barcode text is accommodated by the symbol, or not only does the number of columns reach maximum number of columns (specified by the MaxColumns property), but also the number of stacked rows reachs maximum number of stacked rows (specified by the MaxRows property), in this case (the barcode text cannot always be accommodated), an OnInvalidLength (the barcode text is specified in the Barcode property) or OnInvalidDataLength (only for Delphi/C++ Builder 2009 or later, and the barcode text is specified in the Data property) event will occur. See diagram:
See also the "Symbol size" section in the "TBarcode2D_CCC" article.