Returns the actual horizontal width and vertical height of a rotated barcode symbol in millimeters. The barcode symbol is specified by the parameters of this method.
function PrintSize(var Width, Height, SymbolWidth, SymbolHeight: Double; Barcode: string; ShowQuietZone: Boolean; Module: Double; Angle: Integer = 0; BarcodeWidth: Double = 0; BarcodeHeight: Double = 0; HDPI: Integer = 0; VDPI: Integer = 0): Integer; overload; virtual;
The method returns the actual horizontal width and vertical height of a rotated barcode symbol that is specified by parameters of this method, in millimeters.
For the 2D component TBarcode2D_CCA, TBarcode2D_CCB, or TBarcode2D_CCC. If its Linear property is set to the TBarcode1D_UPCE, TBarcode1D_UPCE0, TBarcode1D_UPCE1, TBarcode1D_UPCA, TBarcode1D_ENA8, TBarcode1D_EAN13, or TBarcode1D_EAN128, and the linear component's DisplayText property isn't set to dtNone, Please use the method between the Printer.BeginDoc and Printer.EndDoc methods.
Width: Double; Returns the horizontal width of the rotated barcode symbol in millimeters. The value is calculated based on the module size. You can use one of the Module, BarcodeWidth and BarcodeHeight parameters to specify the module size.
If the quiet zones are represented (please read the ShowQuietZone parameter section below about whether or not the quiet zones will be represented), they are included in the barcode symbol. See diagram (the quiet zones are drawn in clSilver color in order to accentuate them):
For the TBarcode2D_Code16K barcode components, the leading quiet zone and the trailing quiet zone are included always, even if the ShowQuietZone parameter is set to false. See diagram (the quiet zones are drawn in clSilver color in order to accentuate them):
For the 2D component TBarcode2D_CCA, TBarcode2D_CCB, or TBarcode2D_CCC, if its Linear property is set, the 2D symbol and the linear symbol are assembled to generate an EAN.UCC composite barcode symbol, the linear symbol is included in the composite barcode symbol, and the parameter returns the width of entire EAN.UCC composite barcode symbol, not the width of the 2D symbol. See diagram (the quiet zones are drawn in clSilver color in order to accentuate them):
When the linear component of TBarcode2D_CCA, TBarcode2D_CCB, or TBarcode2D_CCC component is TBarcode1D_UPCA, TBarcode1D_UPCE, TBarcode1D_UPCE0, TBarcode1D_UPCE1, TBarcode1D_EAN8, TBarcode1D_EAN13, or TBarcode1D_EAN128, and its human readable text is represented. The human readable text and the vertical spacing between the text and linear symbol are included in the symbol. If the TextAlignment property isn't set to taCustom, and the human readable text exceeds entire EAN.UCC composite barcode symbol in horizontal direction, the excess is included in the symbol. If the TextAlignment property is set to taCustom, the width of quiet zone marks and their horizontal spacing (LeftQuietZoneSpacing and RightQuietZoneSpacing) are included too (if they are represented, this does not apply to TBarcode1D_EAN128). If the human readable text exceeds the linear barcode symbol in vertical direction, the excess is included too. See diagram (the quiet zones are drawn in clSilver color in order to accentuate them):
Height: Double; Returns the vertical height of the rotated barcode symbol in millimeters. The value is calculated based on the module size. You can use one of the Module, BarcodeWidth and BarcodeHeight parameters to specify the module size.
If the quiet zones are represented (please read the ShowQuietZone parameter section below about whether or not the quiet zones will be represented), they are included in the barcode symbol. See diagram (the quiet zones are drawn in clSilver color in order to accentuate them):
For the TBarcode2D_Code16K barcode components, the leading quiet zone and the trailing quiet zone are included always, even if the ShowQuietZone parameter is set to false. See diagram (the quiet zones are drawn in clSilver color in order to accentuate them):
For the 2D component TBarcode2D_CCA, TBarcode2D_CCB, or TBarcode2D_CCC, if its Linear property is set, the 2D symbol and the linear symbol are assembled to generate an EAN.UCC composite barcode symbol, the linear symbol is included in the composite barcode symbol, and the parameter returns the height of entire EAN.UCC composite barcode symbol, not the height of the 2D symbol. See diagram (the quiet zones are drawn in clSilver color in order to accentuate them):
When the linear component of TBarcode2D_CCA, TBarcode2D_CCB, or TBarcode2D_CCC component is TBarcode1D_UPCA, TBarcode1D_UPCE, TBarcode1D_UPCE0, TBarcode1D_UPCE1, TBarcode1D_EAN8, TBarcode1D_EAN13, or TBarcode1D_EAN128, and its human readable text is represented. The human readable text and the vertical spacing between the text and linear symbol are included in the symbol. If the TextAlignment property isn't set to taCustom, and the human readable text exceeds entire EAN.UCC composite barcode symbol in horizontal direction, the excess is included in the symbol. If the TextAlignment property is set to taCustom, the width of quiet zone marks and their horizontal spacing (LeftQuietZoneSpacing and RightQuietZoneSpacing) are included too (if they are represented, this does not apply to TBarcode1D_EAN128). If the human readable text exceeds the linear barcode symbol in vertical direction, the excess is included too. See diagram (the quiet zones are drawn in clSilver color in order to accentuate them):
SymbolWidth: Double; Returns the distance between the leading and trailing of the rotated barcode symbol in millimeter. The value is calculated based on the module size. You can use one of the Module, BarcodeWidth and BarcodeHeight parameters to specify the module size.
If the quiet zones are represented (please read the ShowQuietZone parameter section below about whether or not the quiet zones will be represented), they are included in the barcode symbol. See diagram (the quiet zones are drawn in clSilver color in order to accentuate them):
For the TBarcode2D_Code16K barcode components, the leading quiet zone and the trailing quiet zone are included always, even if the ShowQuietZone parameter is set to false. See diagram (the quiet zones are drawn in clSilver color in order to accentuate them):
For the 2D component TBarcode2D_CCA, TBarcode2D_CCB, or TBarcode2D_CCC, if its Linear property is set, the 2D symbol and the linear symbol are assembled to generate an EAN.UCC composite barcode symbol, the linear symbol is included in the composite barcode symbol, and the parameter returns the width of entire rotated EAN.UCC composite barcode symbol, not the width of the 2D symbol. See diagram (the quiet zones are drawn in clSilver color in order to accentuate them):
When the linear component of TBarcode2D_CCA, TBarcode2D_CCB, or TBarcode2D_CCC component is TBarcode1D_UPCA, TBarcode1D_UPCE, TBarcode1D_UPCE0, TBarcode1D_UPCE1, TBarcode1D_EAN8, TBarcode1D_EAN13, or TBarcode1D_EAN128, and its human readable text is represented. If the TextAlignment property isn't set to taCustom, and the human readable text exceeds entire EAN.UCC composite barcode symbol in horizontal direction, the excess is included in the symbol. If the TextAlignment property is set to taCustom, the width of quiet zone marks and their horizontal spacing (LeftQuietZoneSpacing and RightQuietZoneSpacing) are included too (if they are represented, this does not apply to TBarcode1D_EAN128). See diagram (the quiet zones are drawn in clSilver color in order to accentuate them):
See also the "BarcodeWidth" property.
SymbolHeight: Double; Returns the distance between the top and bottom of the rotated barcode symbol in millimeter. The value is calculated based on the module size. You can use one of the Module, BarcodeWidth and BarcodeHeight parameters to specify the module size.
If the quiet zones are represented (please read the ShowQuietZone parameter section below about whether or not the quiet zones will be represented), they are included in the barcode symbol. See diagram (the quiet zones are drawn in clSilver color in order to accentuate them):
For the 2D component TBarcode2D_CCA, TBarcode2D_CCB, or TBarcode2D_CCC, if its Linear property is set, the 2D symbol and the linear symbol are assembled to generate an EAN.UCC composite barcode symbol, the linear symbol is included in the composite barcode symbol, and the parameter returns the height of entire rotated EAN.UCC composite barcode symbol, not the height of the 2D symbol. See diagram (the quiet zones are drawn in clSilver color in order to accentuate them):
When the linear component of TBarcode2D_CCA, TBarcode2D_CCB, or TBarcode2D_CCC component is TBarcode1D_UPCA, TBarcode1D_UPCE, TBarcode1D_UPCE0, TBarcode1D_UPCE1, TBarcode1D_EAN8, TBarcode1D_EAN13, or TBarcode1D_EAN128, and its human readable text is represented, the human readable text and the vertical spacing between the text and linear symbol are included in the symbol. If the human readable text exceeds the linear barcode symbol in vertical direction, the excess is included too. See diagram (the quiet zones are drawn in clSilver color in order to accentuate them):
See also the "BarcodeHeight" property.
Barcode: String; Specifies the barcode text. It is of type string.
For Delphi/C++ Builder 2007 or early, the Barcode parameter is in fact an AnsiString. By default, it is an ANSI encoding string, if you want to use other encoding scheme (for example the UTF-8, UTF-16), please convert it in the OnEncode event, or specify the converted string in the Barcode parameter. Also you can use the method if you encode a block of binary (bytes) data.
For Delphi/C++ Builder 2009 or later, it is in fact an UnicodeString instead of AnsiString. By default, the unicode string will be converted to an ANSI encoding string, then be encoded into the barcode symbol. If you want to use other encoding scheme (for example the UTF-8, UTF-16), please convert it in the OnEncode event, or use the PrintSize (Syntax 3) overloading method and specify the converted string in its Data parameter. If you encode a block of binary (bytes) data, please use the PrintSize (Syntax 3) overloading method.
For the TBarcode2D_RSS14 and TBarcode2D_RSSLimited components, if the property AutoCheckDigit is set to true, the check digit doesn't need to be included in the parameter, otherwise the check digit can be specified by you in the parameter.
For the TBarcode2D_CCA, TBarcode2D_CCB, and TBarcode2D_CCC barcode components, if the Linear property is set, the 2D symbol and the linear symbol are assembled to generate an EAN.UCC composite barcode symbol. The parameter only specifies the barcode text for the 2D symbol, the barcode text of linear symbol is specified by the Barcode or Data (only for Delphi/C++ Builder 2009 or later) property of the linear component.
See also the "Barcode" and "Data" (only for Delphi/C++ Builder 2009 or later) properties.
ShowQuietZone: Boolean; Specifies whether to include the leading, trailing, top and bottom quiet zones in barcode symbol. If the parameter value is set to true, these quiet zones are included in the barcode symbol. Otherwise, they don't be included. You can use the LeadingQuietZone, TrailingQuietZone, TopQuietZone, and BottomQuietZone properties to specify the size of these quiet zones in modules. See diagram (the quiet zones are drawn in clSilver color in order to accentuate them):
For the TBarcode2D_Code16K barcode component, the leading quiet zone and the trailing quiet zone will be included always, even if the ShowQuietZone parameter value is set to false. See diagram (the quiet zones are drawn in clSilver color in order to accentuate them):
For the TBarcode2D_CCA, TBarcode2D_CCB, and TBarcode2D_CCC barcode components, if the Linear property is set, the 2D symbol and the linear symbol are assembled to generate an EAN.UCC composite barcode symbol. And 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 2D symbol. See diagram (the quiet zones are drawn in clSilver color in order to accentuate them):
For the TBarcode2D_CCA and TBarcode2D_CCB barcode components, 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 included even if the ShowQuietZone parameter is set to false, the minimum width of leading quiet zone 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, and the minimum width of leading quiet zone will be used if the value of LeadingQuietZone property is less than it. 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 included even if the ShowQuietZone parameter is set to false, the minimum width of trailing quiet zone 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, and the minimum width of trailing quiet zone will be used if the value of TrailingQuietZone property is less than it. 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 parameter is set to true or false. See diagram (the quiet zones are drawn in clSilver color in order to accentuate them):
For all of the TBarcode2D_CCA, TBarcode2D_CCB, and TBarcode2D_CCC barcode components, 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 are included if the ShowQuietZone parameter is set to true), the leading and trailing quiet zoens will be automatically extanded to cover the human readable text, regardless of whether the ShowQuietZone parameter is set to true or false. See diagram (the quiet zones are drawn in clSilver color in order to accentuate them):
See also the "ShowQuietZone" property.
Module: Double; Specifies the module size in millimeters.
For the Matrix 2D barcode symbology (excluding the TBarcode2D_MaxiCode barcode symbology), the module is single cell (a suqare shape) used to encode one bit data. The parameter specifies the module width and height. See diagram:
For the TBarcode2D_MaxiCode barcode symbology, the module is single cell (a regular hexagonal shape) used to encode one bit data. The parameter specifies the horizonal width of a module. Also, it's the center to center horizontal distance between adjacent modules. See diagram:
For the Stacked 2D barcode symbology and Linear 1D barcode symbology, the module is the thinest bar (or space) in the barcode symbol. The parameter specifies the module width. See diagram:
For the 2D component TBarcode2D_CCA, TBarcode2D_CCB, or TBarcode2D_CCC, if its Linear property is set, the 2D symbol and the linear symbol are assembled to generate an EAN.UCC composite barcode symbol, the parameter specifies the module width for entire EAN.UCC composite barcode symbol (including both 2D and linear symbols). See diagram:
If any one of the BarcodeWidth parameter and BarcodeHeight parameter is provided and it isn't zero, the value of Module parameter will be ignored, the module size will be calculated based on the BarcodeWidth parameter value or the BarcodeHeight parmeter value. If both BarcodeWidth and BarcodeHeight parameters are provided and aren't zero, only the BarcodeWidth parameter value will be used to calculate the module size, the BarcodeHeight parameter value will be ignored.
See also the "Module" property.
Angle: Integer; Specifies an angle in degrees to rotate the barcode symbol and its quiet zones (if they are represented, please read the ShowQuietZone parameter section above about whether or not the quiet zones will be represented) anticlockwise. You can use the LeadingQuietZone, TrailingQuietZone, TopQuietZone, and BottomQuietZone properties to specify the size of these quiet zones in modules. And use the ShowQuietZone parameter to specify whether to represent these quiet zones. See diagram (the quiet zones are drawn in clSilver color in order to accentuate them):
For the 2D component TBarcode2D_CCA, TBarcode2D_CCB, or TBarcode2D_CCC, if its Linear property is set, the 2D symbol and the linear symbol are assembled to generate an EAN.UCC composite barcode symbol, and they will be rotated as an entirety. See diagram (the quiet zones are drawn in clSilver color in order to accentuate them):
The parameter defaults to 0 if the Angle is not provided, meaning left to right horizontal direction.
BarcodeWidth: Double, Specifies the barcode symbol width (the distance between the beginning and end of the barcode symbol), in millimeters. If the quiet zones are represented (please read the ShowQuietZone parameter section above about whether or not the quiet zones will be represented), the leading quiet zone and the trailing quiet zone are included in the barcode symbol. See diagram (the quiet zones are drawn in clSilver color in order to accentuate them):
For the TBarcode2D_Code16K barcode component, the leading quiet zone and the trailing quiet zone are included always, even if the ShowQuietZone parameter is set to false. See diagram (the quiet zones are drawn in clSilver color in order to accentuate them):
For the 2D component TBarcode2D_CCA, TBarcode2D_CCB, or TBarcode2D_CCC, if its Linear property is set, the 2D symbol and the linear symbol are assembled to generate an EAN.UCC composite barcode symbol, the linear symbol is included in the composite barcode symbol, and the parameter specifies the width for entire EAN.UCC composite barcode symbol not only for the 2D symbol. See diagram (the quiet zones are drawn in clSilver color in order to accentuate them):
When the linear component of TBarcode2D_CCA, TBarcode2D_CCB, or TBarcode2D_CCC component is TBarcode1D_UPCA, TBarcode1D_UPCE, TBarcode1D_UPCE0, TBarcode1D_UPCE1, TBarcode1D_EAN8, TBarcode1D_EAN13, or TBarcode1D_EAN128, and its human readable text is represented. If the TextAlignment property isn't set to taCustom, and the human readable text exceeds entire EAN.UCC composite barcode symbol in horizontal direction, the excess isn't included in the width value. If the TextAlignment property is set to taCustom, the width of quiet zone marks and their horizontal spacing (LeftQuietZoneSpacing and RightQuietZoneSpacing) are included (if they are represented, this does not apply to TBarcode1D_EAN128). See diagram (the quiet zones are drawn in clSilver color in order to accentuate them):
Note, if the parameter is provided and it isn't zero, the values in Module and BarcodeHeight parameters will be ignored, the module size will be calculated based on the BarcodeWidth value. If both BarcodeHeight and BarcodeWidth parameters aren't provided or they are all zero, the barcode symbol width will be determined by the Module parameter value.
If both BarcodeWidth and BarcodeHeight parameters are provided and aren't zero, only the BarcodeWidth parameter value will be used to calculate the module size, the BarcodeHeight parameter value will be ignored.
See also the "BarcodeWidth" property.
BarcodeHeight: Double, Specifies the barcode symbol height (the distance between the top and bottom of the barcode symbol), in millimeters. If the quiet zones are represented (please read the ShowQuietZone parameter section above about whether or not the quiet zones will be represented), the top quiet zone and the bottom quiet zone are included in the barcode symbol. See diagram (the quiet zones are drawn in clSilver color in order to accentuate them):
For the 2D component TBarcode2D_CCA, TBarcode2D_CCB, or TBarcode2D_CCC, if its Linear property is set, the 2D symbol and the linear symbol are assembled to generate an EAN.UCC composite barcode symbol, the linear symbol is included in the composite barcode symbol, and the parameter specifies the height for entire EAN.UCC composite barcode symbol not only for the 2D symbol. See diagram (the quiet zones are drawn in clSilver color in order to accentuate them):
When the linear component of TBarcode2D_CCA, TBarcode2D_CCB, or TBarcode2D_CCC component is TBarcode1D_UPCA, TBarcode1D_UPCE, TBarcode1D_UPCE0, TBarcode1D_UPCE1, TBarcode1D_EAN8, TBarcode1D_EAN13, or TBarcode1D_EAN128, and its human readable text is represented. the human readable text and the vertical spacing between the text and linear symbol are included in the height value. See diagram (the quiet zones are drawn in clSilver color in order to accentuate them):
Note, if the parameter is provided and it isn't zero, and the BarcodeWidth parameter isn't provided or it's zero, the value in Module parameter will be ignored, the module size will be calculated based on the BarcodeHeight value. If both BarcodeHeight and BarcodeWidth parameters aren't provided or they are all zero, the barcode symbol height will be determined by the Module parameter value.
If both BarcodeWidth and BarcodeHeight parameters are provided and aren't zero, only the BarcodeWidth parameter value will be used to calculate the module size, the BarcodeHeight parameter value will be ignored.
See also the "BarcodeHeight" property.
HDPI: Integer, Specifies the physical horizontal resolution of printer in DPI (dots per inch).
It defaults to 0 if the HDPI is not provided, and the horizontal resolution will be obtained from your printer.
VDPI: Integer, Specifies the physical vertical resolution of printer in DPI (dots per inch).
It defaults to 0 if the VDPI is not provided, and the vertical resolution will be obtained from your printer.
If the method succeeds, the return value is zero.
If the length of barcode text is invalid, the return valus is -1 or -65537.
For the TBarcode2D_CCA, TBarcode2D_CCB, and TBarcode2D_CCC barcode components, if the Linear property is set, the 2D symbol and the linear symbol are assembled to generate an EAN.UCC composite barcode symbol. If the length of barcode text of the 2D symbol is invalid, the return valus is -1. If the length of barcode text of the linear symbol is invalid, the return valus is -65537.
For other barcode components, if the length of barcode text is invalid, the return valus is -1.
If there is any invalid character in the the barcode text, the return value is greater than zero. In general, it's the position index of first invalid character, the index 1 denotes that the first character is invalid character.
For the TBarcode2D_CCA, TBarcode2D_CCB, and TBarcode2D_CCC barcode components, if the Linear property is set, the 2D symbol and the linear symbol are assembled to generate an EAN.UCC composite barcode symbol. If the invalid character is in the 2D symbol, the 17th bit of the return value is set to 0 (the return value is the position index of first invalid character, the index 1 denotes that the first character is invalid character). If the invalid character is in the linear symbol, the 17th bit of the return value is set to 1 (the difference between the return value and 65536 is the position index of first invalid character. For example, the return value 65537 denotes that the first character is invalid character).
For other barcode components, if there is any invalid character in the the barcode text, the return value is the position index of first invalid character, the index 1 denotes that the first character is invalid character.