Draws a barcode symbol on the specified canvas. The barcode symbol is specified in the parameters of this method.
type
{ Defined in the pCore1D unit }
TDisplayText = (dtNone, dtBarcode, dtFullEncoded);
{ Defined in the pCore1D unit }
TTextPosition = (tpTopIn, tpTopOut, tpBottomIn, tpBottomOut);
{ Defined in the pCore1D unit }
TTextAlignment = (taLeft, taCenter, taRight, taJustify, taLeftQuietZone, taCenterQuietZone, taRightQuietZone, taJustifyQuietZone, taCustom);
function DrawTo(Canvas: TCanvas; Left, Top: Integer; Barcode: string; AutoCheckDigit: Boolean; BarColor, SpaceColor: TColor; BarcodeTextDefine: TBarcodeTextDefine; Ratio: Double; Module: Integer = 0; Height: Integer = 0; Angle: Integer = 0; HDPI: Integer = 0; VDPI: Integer = 0): Integer; overload; virtual;
On the specified canvas, draws a barcode symbol that is specified in the parameters of this method.
Canvas: TCanvas; Specifies target canvas to represent the barcode symbol in it.
Left: Integer; Specifies the margin between the barcode symbol and the left side of the canvas in logical dots or pixels in the horizontal direction. If the human readable text is represented, it's included in the barcode symbol.
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 field of the BarcodeTextDefine parameter is set to taCustom, the left and right quiet zones marks and their horizontal spacing are included in the barcode symbol too.
For TBarcode1D_ITF6, TBarcode1D_ITF14, and TBarcode1D_ITF16 barcode components, all bearer bars, the left and right spacing are included in the barcode symbol too.
If the human readable text is represented and it exceeds the barcode symbol in horizontal or vertical direction, the excess is included in the barcode symbol too.
See also the "LeftMargin" property.
Top: Integer; Specifies the margin between the barcode symbol and the top side of the canvas in logical dots or pixels in the vertical direction. If the human readable text is represented, it's included in the barcode symbol.
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 field of the BarcodeTextDefine parameter is set to taCustom, the left and right quiet zones marks and their horizontal spacing are included in the barcode symbol too.
For TBarcode1D_ITF6, TBarcode1D_ITF14, and TBarcode1D_ITF16 barcode components, all bearer bars, the left and right spacing are included in the barcode symbol too.
If the human readable text is represented and it exceeds the barcode symbol in horizontal or vertical direction, the excess is included in the barcode symbol too.
See also the "TopMargin" 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. For Delphi/C++ Builder 2009 or later, it is in fact an UnicodeString instead of AnsiString.
For the TBarcode1D_Code128 and the TBarcode1D_EAN128 components, if you use them in the Delphi/C++ Builder 2007 or early, the Barcode parameter is in fact an AnsiSting in ANSI encoding scheme. 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 paramater. Also, you can use the method to encode a block of binary (bytes) data; If you use them in the 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 DrawTo (Syntax 3) overloading method and specify the converted string in its Data paramater. If you want to encode block of binary (bytes) data, please use the DrawTo (Syntax 3) overloading method. Note, the "\" character is used as a escape prefix, so if you want to encode the "\" character, please use the "\\" instead of it.
For the TBarcode1D_OneCode component, first 20 characters are the Tracking (It is right padded with zeroes to 20 characters), then come the Routing.
For the TBarcode1D_FIM component, it is single character that denotes the FIM type, form "A" to "E", the "E" character dnotes an empty barcode symbol.
For the TBarcode1D_Patch component, it is single character that denotes the Ptach type, and it can be set to "0", "1", "2", "3", "4", "6", and "T", the "0" character dnotes an empty barcode symbol.
For the TBarcode1D_Code32 component, First "A" character does not need to be entered in the parameter. Also, for the TBarcode1D_PZN component, First "PZN" characters do not need to be entered in the parameter.
See also the "Barcode" property.
AutoCheckDigit: Boolean; Specifies whether the check digit should be automatically appended to the barcode symbol.
See also the "AutoCheckDigit" property.
BarColor: TColor; Specifies the color for all bars in the barcode symbol.
See also the "BarColor" property.
SpaceColor: TColor; Specifies the color for all spaces in the barcode symbol.
If the human readable text is represent, the color will be used as its background color (the foreground color is specified using the TextFont field of the BarcodeTextDefine parameter). For TBarcode1D_ITF6, TBarcode1D_ITF14, and TBarcode1D_ITF16 components, the left spacing and the right spacing will be represented using the color. For TBarcode1D_UPCE, TBarcode1D_UPCE0, TBarcode1D_UPCE1, TBarcode1D_UPCA, TBarcode1D_EAN2, TBarcode1D_EAN5, TBarcode1D_EAN8, and TBarcode1D_EAN13 components, if the human readable text is represented, and the TextAlignment field of the BarcodeTextDefine parameter is set to taCustom, the left and right quiet zones, left quietzone spacing and right quiet zone spacing will be represented using the color. In other words, the parameter specify the background color for entire barcode symbol.
See also the "SpaceColor" property.
BarcodeTextDefine: TBarcodeTextDefine; Specifies whether to display the human readable text and how to display the human readable text. The record is defined in the pBarcode1D unit.
See also the TBarcodeTextDefine record.
Ratio: Double; Specifies ratio between a wide bar (or space) and a narrow bar (or space) in the barcode symbol. The normal values are from 2.0 to 3.0. If the parameter is less than or equal to zero, the method fails, and the return value is -2.
See also the "Ratio" property.
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 0 if the Angle is not provided, meaning left to right horizontal direction.
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 represent the correct barcode symbol when the symbol is rotated.
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 represent the correct barcode symbol when the symbol is rotated.
See diagram:
For Delphi 3, the method overload and default value of parameter aren't supported, so the method name is changed to DrawTo2, and the parameters Module, Height, Angle, HDPI, and VDPI are required.