(TBarcode2D_PDF417)
Specifies the priority order of selecing appropriate symbol size for a PDF417 barcode symbol.
type
{ Defined in the pPDF417 unit }
TPDF417_StretchOrder = (soRowColumn, soColumnRow, soFixAspect, soFixAspectWithQuietZones);
property StretchOrder: TPDF417_StretchOrder;
The minimum number of rows (specified by the MinRows property) and the minimum number of columns (specified by the MinColumns property) indicates the minimum symbol size for a PDF417 barcode symbol. The maximum number of rows (specified by the MaxRows property) and the maximum number of columns (specified by the MaxColumns property) indicates the maximum symbol size for the PDF417 barcode symbol. 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 pPDF417 unit):
soRowColumn: If the PDF417 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 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 PDF417 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:
soFixAspect: An overall aspect ratio is specified by the minimum number of stacked rows (specified by the MinRows property) and minumum number of columns (specified by the MinColumns property), the ratio is height to width of the symbol excluding quiet zones. 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 they approximately match the aspect ratio will be used. According to the data capacity, in increasing order of recovery capacity, the smallest symbol size that accommodates the barcode text 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.
soFixAspectWithQuietZones: An overall aspect ratio is specified by the minimum number of stacked rows (specified by the MinRows property) and minumum number of columns (specified by the MinColumns property), the ratio is height to width of the symbol including quiet zones. 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 they approximately match the aspect ratio will be used. According to the data capacity, in increasing order of recovery capacity, the smallest symbol size that accommodates the barcode text 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.
See also the "Symbol size" section in the "TBarcode2D_PDF417" article.