Returns the horizontal width and vertical height of a rotated barcode symbol in logical dots or pixels. The barcode symbol is specified in the properties of this barcode component.
function DrawToSize(var TotalWidth, TotalHeight, SymbolWidth, SymbolHeight: Integer; Canvas: TCanvas; Module: Integer = 0; Height: Integer = 0; Angle: Integer = -1; HDPI: Integer = 0; VDPI: Integer = 0): Integer; overload; virtual;
The method returns the horizontal width and vertical height of the rotated barcode symbol that is specified by properties of this barcode component, in logical dots or pixels.
TotalWidth: Integer; Returns the horizontal width of the rotated barcode symbol in logical dots or pixels in the horizontal direction.
Before rotation, if the human readable text is represented, both the width of human readable text and the height of the human readable text (including its vertical spacing) will be consulted. Otherwise, they will not be consulted. Note, if the human readable text is represented and it exceeds the barcode symbol in horizontal or vertical direction, the excess is included.
For TBarcode1D_UPCA, TBarcode1D_UPCE, TBarcode1D_UPCE0, TBarcode1D_UPCE1, TBarcode1D_EAN2, TBarcode1D_EAN5, TBarcode1D_EAN8, and TBarcode1D_EAN13 barcode components, if the human readable text is represented, and the TextAlignment property is set to taCustom, the width of quiet zone marks and their horizontal spacing (LeftQuietZoneSpacing and RightQuietZoneSpacing) are included too.
For TBarcode1D_ITF6, TBarcode1D_ITF14, and TBarcode1D_ITF16 barcode components, the width of left and right bearer bars (BearerWidth), the height of top and bottom bearer bars (BearerWidth), the left spacing, and the right spacing are included too.
TotalHeight: Integer; Returns the vertical height of the rotated barcode symbol in logical dots or pixels in the vertical direction.
Before rotation, if the human readable text is represented, both the width of human readable text and the height of the human readable text (including its vertical spacing) will be consulted. Otherwise, they will not be consulted. Note, if the human readable text is represented and it exceeds the barcode symbol in horizontal or vertical direction, the excess is included.
For TBarcode1D_UPCA, TBarcode1D_UPCE, TBarcode1D_UPCE0, TBarcode1D_UPCE1, TBarcode1D_EAN2, TBarcode1D_EAN5, TBarcode1D_EAN8, and TBarcode1D_EAN13 barcode components, if the human readable text is represented, and the TextAlignment property is set to taCustom, the width of quiet zone marks and their horizontal spacing (LeftQuietZoneSpacing and RightQuietZoneSpacing) are included too.
For TBarcode1D_ITF6, TBarcode1D_ITF14, and TBarcode1D_ITF16 barcode components, the width of left and right bearer bars (BearerWidth), the height of top and bottom bearer bars (BearerWidth), the left spacing, and the right spacing are included too.
SymbolWidth: Integer; Returns the distance between the leading and trailing of the rotated barcode symbol in logical dots or pixels in the horizontal direction.
Before rotation, if the human readable text is represented, the width of human readable text will be consulted. Otherwise, it will not be consulted. Note, if the human readable text is represented, and it exceeds the barcode symbol in horizontal direction, the excess is included.
For TBarcode1D_UPCA, TBarcode1D_UPCE, TBarcode1D_UPCE0, TBarcode1D_UPCE1, TBarcode1D_EAN2, TBarcode1D_EAN5, TBarcode1D_EAN8, and TBarcode1D_EAN13 barcode components, if the human readable text is represented, and the TextAlignment property is set to taCustom, the width of quiet zone marks and their horizontal spacing (LeftQuietZoneSpacing and RightQuietZoneSpacing) are included too.
For TBarcode1D_ITF6, TBarcode1D_ITF14, and TBarcode1D_ITF16 barcode components, the width of left and right bearer bars (BearerWidth), the left spacing, and the right spacing are included too.
SymbolHeight: Integer; Returns the distance between the top and bottom of the rotated barcode symbol in logical dots or pixels in the vertical direction.
Before rotation, if the human readable text is represented, the height of the human readable text and its vertical spacing (TextVSpacing) are included. If it exceeds the barcode symbol in vertical direction, the excess is included too.
For TBarcode1D_ITF6, TBarcode1D_ITF14, and TBarcode1D_ITF16 barcode components, the height of top and bottom bearer bars (BearerWidth) are included too.
See also the "Height" property.
Canvas: TCanvas; Specifies target canvas that the barcode symbol will be represented in it. If the DisplayText property isn't set to dtNone, the parameter is required in order to calculate the width of human readable text. Otherwise, it will be ignored, so you can set it to nil.
Module: Integer; Specifies the module width in logical dots or pixels in the horizontal direction, it is the width of the smallest bar (or space) in the barcode symbol. If the parameter isn't provided or it is set to zero, the value of "Module" property will be used.
See also the "Module" property.
Height: Integer; Specifies the distance between the top and bottom of a barcode symbol in modules. If the human readable text is displayed, the height of the human readable text and its vertical spacing (TextVSpacing) are included.
If the parameter isn't provided or its value is set to zero, the value of Height property will be used.
For TBarcode1D_ITF6, TBarcode1D_ITF14, and TBarcode1D_ITF16 barcode components, the height of the top and bottom bearer bars (BearerWidth) are included too.
If the human readable text is displayed, and it exceeds the barcode symbol in vertical direction, the excess isn't included.
See also the "Height" property.
Note: If the parameter is less than zero, its absolute value specifies the height in logical dots or pixels in the vertical direction.
Angle: Integer; Specifies an angle in degrees to rotate the barcode symbol. It defaults to -1 if the Angle is not provided, and the barcode symbol will be rotated base on the value of the Orientation property:
If you want to use the -1 degrees, the 359 degrees can be used instead.
HDPI: Integer, Specifies the horizontal resolution of canvas in logical DPI. It's the number of logical dots or pixels per inch.
It defaults to 0 if the HDPI is not provided. If it is set to less than or equal to zero, the physical horizontal resolution obtained from the Canvas parameter will be used. So if you use the MM_TEXT map mode, you can specify it to 0. If you use the MM_ISOTROPIC or MM_ANISOTROPIC map mode, and the horizontal units or scaling is changed, the parameter is required in order to obtain the correct sizes when the symbol is rotated.
When the Canvas parameter is set to nil, if both HDPI and VDPI are set to 0, it indicates the horizontal resolution is equal to the vertical resolution.
VDPI: Integer, Specifies the vertical resolution of canvas in logical DPI. It's the number of logical dots or pixels per inch.
It defaults to 0 if the VDPI is not provided. If it is set to less than or equal to zero, the physical vertical resolution obtained from the Canvas parameter will be used. So if you use the MM_TEXT map mode, you can specify it to 0. If you use the MM_ISOTROPIC or MM_ANISOTROPIC map mode, and the vertical units or scaling is changed, the parameter is required in order to obtain the correct sizes when the symbol is rotated.
When the Canvas parameter is set to nil, if both HDPI and VDPI are set to 0, it indicates the horizontal resolution is equal to the vertical resolution.
See diagram:
For Delphi 3, the method overload and default value of parameter aren't supported, so the method name is changed to DrawToSize1, and the parameters Module, Height, Angle, HDPI, and VDPI are required.