Draws a barcode symbol on the specified canvas. The barcode symbol is specified by the parameters of this method.
function DrawTo(Canvas: TCanvas; Barcode: string; BarColor, SpaceColor: TAlphaColor; ShowQuietZone: Boolean; Left, Top, Module: Single; Angle: Single = 0; Opacity: Single = 1; HDPI: Integer = 0; VDPI: Integer = 0): Integer; overload; virtual;
On the specified canvas, draws a barcode symbol that is specified by the parameters of this method.
Canvas: TCanvas; Specifies target canvas to draw the barcode symbol on it.
Barcode: String; Specifies the barcode text. It is of type string, and it is in fact an UnicodeString. By default, the unicode string will be converted to an UTF-8 bytes sequence (the BOM isn't included), then be encoded into the barcode symbol. If you want to use other encoding scheme (for example the ANSI, UTF-16), please convert it in the OnEncode event handle, or use the DrawTo (Syntax 3) overloading method and specify the converted bytes sequence in its Data parameter. If you want to encode a block of binary (bytes) data, please use the DrawTo (Syntax 3) overloading method.
For the TBarcodeFmx2D_RSS14 and TBarcodeFmx2D_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.
BarColor: TAlphaColor; In general, the Inversed property is set to false. In this case, the parameters specifies the color for all bars (Stacked 2D barcode symbology and Linear 1D barcode symbology) or dark modules (Matrix 2D barcode symbology) in the barcode symbol.
If the Inversed property is set to true, it specifies the color for all spaces (Stacked 2D barcode symbology and Linear 1D barcode symbology) or light modules (Matrix 2D barcode symbology) in the barcode symbol. Also, if the ShowQuietZone parameter value is set to true, the leading quiet zone, trailing quiet zone, top quiet zone, and bottom quiet zone are drawn using the color.
The alpha channel of the BarColor parameter is supported.
See also the "BarColor" property.
SpaceColor: TAlphaColor; In general, the Inversed property is set to false. In this case, the parameters specifies the color for all spaces (Stacked 2D barcode symbology and Linear 1D barcode symbology) or light modules (Matrix 2D barcode symbology) in the barcode symbol. Also, if the ShowQuietZone parameter value is set to true, the leading quiet zone, trailing quiet zone, top quiet zone, and bottom quiet zone are drawn using the color.
If the Inversed property is set to true, it specifies the color for all bars (Stacked 2D barcode symbology and Linear 1D barcode symbology) or dark modules (Matrix 2D barcode symbology) in the barcode symbol.
The alpha channel of the SpaceColor parameter is supported.
See also the "SpaceColor" property.
ShowQuietZone: Boolean; Specifies whether to draw the leading quiet zone, trailing quiet zone, top quiet zone, and bottom quiet zone. If the parameter value is set to true, these quiet zones are drawn. Otherwise, they don't be drawn. You can use the LeadingQuietZone, TrailingQuietZone, TopQuietZone, and BottomQuietZone properties to specify the size of these quiet zones in modules. See diagram (the SpaceColor parameter is set to claSilver in order to accentuate the quiet zones):
For the TBarcodeFmx2D_Code16K barcode component, leading quiet zone and trailing quiet zone will be drawn always, even if the ShowQuietZone parameter value is set to false. See diagram (the SpaceColor parameter is set to claSilver in order to accentuate the quiet zones):
In general, the Inversed property is set to false. In this case, these quiet zones are drawn using the color specified by SpaceColor parameter. If the Inversed property is set to true, these quiet zones are drawn using the color specified by BarColor parameter.
See also the "ShowQuietZone" property.
Left: Single; Specifies the margin between the rotated barcode symbol and the left side of the canvas in dots or pixels in the horizontal direction (using the horizontal resolution). If the quiet zones are drawn (please read the ShowQuietZone parameter section above about whether or not the quiet zones will be drawn), they are included in the barcode symbol. See diagram (the SpaceColor parameter value is set to claSilver in order to accentuate the quiet zones):
For the TBarcodeFmx2D_Code16K barcode component, leading quiet zone and trailing quiet zone are included always, even if the ShowQuietZone parameter is set to false. See diagram (the SpaceColor parameter value is set to claSilver in order to accentuate the quiet zones):
See also the "LeftMargin" property.
Top: Single; Specifies the margin between the rotated barcode symbol and the top side of the canvas in dots ot pixels in the vertical direction (using the vertical resolution). If the quiet zones are drawn (please read the ShowQuietZone parameter section above about whether or not the quiet zones will be drawn), they are included in the barcode symbol. See diagram (the SpaceColor parameter value is set to claSilver in order to accentuate the quiet zones):
For the TBarcodeFmx2D_Code16K barcode component, leading quiet zone and trailing quiet zone are included always, even if the ShowQuietZone parameter is set to false. See diagram (the SpaceColor parameter value is set to claSilver in order to accentuate the quiet zones):
See also the "TopMargin" property.
Module: Single; Specifies the module size in dots or pixels (using the horizontal resolution).
For the Matrix 2D barcode symbology (excluding the TBarcodeFmx2D_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 TBarcodeFmx2D_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:
See also the "Module" property.
Angle: Single; Specifies an angle in degrees to rotate the barcode symbol and its quiet zones (if they are drawn, please read the ShowQuietZone parameter section above about whether or not the quiet zones will be drawn) anticlockwise. It defaults to 0 if the parameter is not provided, meaning left to right horizontal direction. See diagram (the SpaceColor parameter value is set to claSilver in order to accentuate the quiet zones):
Opacity: Single, Specifies the transparency-level of entire barcode symbol, where 1 is not transparant at all, 0.5 is 50% see-through, and 0 is completely transparent.
The parameter defaults to 1 if it is not provided, meaning not transparant at all.
Note, if the Inversed property is set to false, you can use the alpha channel of the SpaceColor parameter value to specify the transparency-level of bakcground color (spaces or light modules, and quiet zones), and use the alpha channel of the BarColor parameter value to specify the transparency-level of foreground color (bars or dark modules). If the Inversed property is set to true, you can use the alpha channel of the BarColor parameter value to specify the transparency-level of bakcground color (spaces or light modules, and quiet zones), and use the alpha channel of the SpaceColor parameter value to specify the transparency-level of fore-ground color (bars or dark modules).
HDPI: Integer, Specifies the horizontal resolution of canvas in DPI. It's the number of dots or pixels per inch. It defaults to 0 if the HDPI is not provided, and the physical horizontal resolution obtained from the Canvas parameter will be used.
VDPI: Integer, Specifies the vertical resolution of canvas in DPI. It's the number of dots or pixels per inch. It defaults to 0 if the VDPI is not provided, and the physical vertical resolution obtained from the Canvas parameter will be used.
This method can return one of these values (these consts are defined in the pfmxCore2D unit):
Verify_InvalidIndex_AfterBarcode (-4):
If you use the OnEncode event handle to encode the barcode text to a bytes sequence in your own encoding scheme, the Verify_InvalidIndex_AfterBarcode (-4) indicats that an invalid byte value is in the suffix codes of the bytes sequence.
Verify_InvalidIndex_BeforeBarcode (-3):
If you use the OnEncode event handle to encode the barcode text to a bytes sequence in your own encoding scheme, the Verify_InvalidIndex_BeforeBarcode (-3) indicats that an invalid byte value is in the prefix codes of the bytes sequence (for example the BOM).
Verify_InvalidLength (-2):
It indicates that the length of Barcode parameter value is invalid.
Verify_OK (-1):
It indicates the method succeeds.
Verify_InvalidIndex_Base (0), and greater than 0:
It indicates that an invalid character is in the barcode text, the return value is the position index of the invalid charactere. For 32-bit Windows, 64-bit Windows, and Mac OSX platform, the index 1 denotes that the first character is invalid character. For iOS and Android platform, the index 0 denotes that the first character is invalid character.