RDatamatrix for Delphi

Copyright J4L (http://www.java4less.com) 2002.

Introduction

RDatamatrixX is a Delphi component that will allow you to create Datamatrix (ECC200) barcodes for your windows applications. The component has been developed using Delphi 4 and Delphi 7 so it should run in any Delphi version between between 4 and 7 by recompiling it.

Data Matrix is a two-dimensional (2D) matrix symbology which is made up of square modules arranged within a perimeter finder pattern. It can encode up to 3116 characters from the entire 256 byte ASCII character set. The symbol consists of data regions which contain square modules set out in a regular array. Large ECC 200 symbols contain several regions. Each data region is delimited by a finder pattern, and this is surrounded on all four sides by a quiet zone border (margin).

 

 

ECC 200 symbols have an even number of rows and an even number of columns. Most of the symbols are square with sizes from 10 x 10 to 144 x 144. Some symbols however are rectangular with sizes from 8 x 18 to 16 x 48. All ECC 200 symbols can be recognized by the upper right corner module being light (binary 0).

ECC200 is the newest version of data matrix and supports advanced encoding error checking and correction algorithms (reed-solomon). This algorithms allow the recognition of barcodes that are up to 60% damaged.

The barcode supports two optional mechanisms:

RDataMatrix supports:

Formats

RDataMatrix supports all data matrix formats. The following table contains the size , the capacity and the correction error features of each format:

Size

Numeric Capacity

Alphanumeric capacity

Binary capacity

Max Correctable

Error/Erasure

10 x 10

6

3

1

2

12 x 12 10 6 3 3
14 x 14 16 10 6 5/7
16 x 16 24 16 10 6/9

18 x 18

36

25

16

7/11

20 x 20 44 31 20 9/15

22 x 22

60

43

28

10/17

24 x 24

72

52

34

12/21

26 x 26

88

64

42

14/25

32 x 32 124 91 60 18/33
36 x 36 172 127 84 21/39
40 x 40 228 169 112 24/45
44 x 44 288 214 142 28/53
48 x 48 348 259 172 34/65
52 x 52 408 304 202 42/78
64 x 64 560 418 278 56/106
72 x 72 736 550 366 72/132
80 x 80 912 682 454 96/180
88 x 88 1152 862 574 112/212
96 x 96 1392 1042 694 136/260
104 x 104 1632 1222 814 168/318
120 x 120 2100 1573 1048 204/390
132 x 132 2608 1954 1302 248/472
144 x 144 3116 2335 1556 310/590
8 x 18 10 6 3 3
8 x 32 20 13 8 5
12 x 26 32 22 14 7/11
12 x 36 44 31 20 9/15
16 x 36 64 46 30 12/21
16 x 48 98 72 47 14/25

Encoding

The data represented in the symbol can be compressed using one or several of the following algorithms:

All encoding system can be used to encode any data, but for example, encoding binary data with C40 generates much more overhead (longer symbol) than with BASE256.

Control characters

RDataMatrix uses the character ~ to recognize some special characters in the input data. The following possibilities are available:

References

You can find more information about data matrix at:


Installation

In order to install the component you must start delphi and select:

component -> install packages -> select BPL file.

The new component will appear in your component's palette. It will create a new "tab" called "barcodes".

 

Examples

In order to run the sample application you must execute datamatrixDemo.exe or barcode1D2DDemo.exe.

 

Properties and methods

The TDatamatrix component is a subclass of TGraphicControl and can therefore be placed on any form or container. This is the esiest way to use it , however you can also create an instance of the component by program and then paint the barcode on any canvas object using the paintBarcode() method.

The component TDatamatrix has following properties and methods:

Methods

Properties

You can also use the component in order to paint onto an external canvas. For example, in order to create a bitmap file you would use the following code:

var
bmp: TBitmap;
begin

bmp:=TBitmap.create();
bmp.height:=200;
bmp.width:=200;

{use paintBarcode() to paint onto an external Canvas}
barcode.paintBarcode(bmp.Canvas);

bmp.saveToFile('barcode.bmp');

end;