BARCODEDATA
typedef struct tagBarCodeData
{
L_UINT uStructSize;
L_INT nGroup;
L_UINT32 ulType;
L_INT nUnits;
RECT rcBarLocation;
L_INT nSizeofBarCodeData;
L_CHAR * pszBarCodeData;
L_INT nIndexDuplicate;
L_INT nTotalCount;
L_INT nDupCount;
L_UINT uFlags;
L_UINT uDataCode;
} BARCODEDATA,* pBARCODEDATA;
This structure contains bar code information.
Member |
Description |
|
uStructSize |
Size of BARCODEDATA structure, in bytes, for versioning. Use the sizeof() macro to calculate this value. |
|
nGroup |
Specifies whether the barcode symbol is a member of a group of symbols. This member is used for reading PDF417 symbols. |
|
ulType |
Barcode type. Possible values are : |
|
|
Value |
Meaning |
|
Linear (1D) barcode symbols: |
|
|
BARCODE_1D_EAN_13 |
[0x80000001] EAN 13 type. Used with consumer products internationally. |
|
BARCODE_1D_EAN_8 |
[0x80000002] EAN 8 type. The short version of EAN13. |
|
BARCODE_1D_UPC_A |
[0x80000004] UPC version A type. Used with consumer products in U.S. |
|
BARCODE_1D_UPC_E |
[0x80000008] UPC version E type. It is the short version of UPCA. |
|
BARCODE_1D_CODE_3_OF_9 |
[0x80000010] Code 3 of 9 (Code 39) type. Used especially in non-retail environments. |
|
BARCODE_1D_CODE_128 |
[0x80000020] Code 128 type. Very dense code, used extensively worldwide. |
|
BARCODE_1D_CODE_I2_OF_5 |
[0x80000040] Interleaved 2 of 5 type. Used in warehouse, industrial applications. |
|
BARCODE_1D_CODA_BAR |
[0x80000080] CODABAR (Ames Code/USD-4/NW-7/2 of 7 Code) type. Used in libraries and blood banks. |
|
BARCODE_1D_UCCEAN_128 |
[0x80000100] UCCEAND 128 type (for read only) |
|
BARCODE_1D_CODE_93 |
[0x80000200] Code 93 type. Compressed form of Code 39 |
|
BARCODE_1D_EANEXT_5 |
[0x80000400] 5-digit supplemental type. May be used with UPCA, UPCE, EAN13 and EAN8 on books to indicate a suggested retail price. |
|
BARCODE_1D_EANEXT_2 |
[0x80000800] 2-digit supplemental type. May be used with UPCA, UPCE, EAN13 and EAN8 to indicate magazines and newspaper issue numbers. |
|
BARCODE_1D_MSI |
[0x80001000] MSI (Modified Plessey) type. Used to mark retail shelves for inventory control. |
|
BARCODE_1D_CODE11 |
[0x80002000] Code 11(USD-8) type. Used in labeling telecommunications equipment. |
|
BARCODE_1D_CODE_S25 |
[0x80004000] Standard 2 of 5 (Industrial 2 of 5) type. Used in the photofinishing, warehouse sorting industries and sequentially numbering airline tickets. |
|
BARCODE_1D_RSS14 |
[0x80008000] GS1 Databar (formerly RSS14) type. Used in grocery industry, healthcare, and where items are too small to allow for older barcode symbologies. |
|
BARCODE_1D_RSS14_LIMITED |
[0x80010000] GS1 Databar (formerly RSS14) Limited type. Short version of GS1 Databar (formerly RSS14). |
|
BARCODE_1D_RSS14_EXPANDED |
[0x80020000] GS1 Databar (formerly RSS14) Expanded type. It encodes item identification plus supplementary strings such as weight and date. Used in grocery industry and healthcare. |
|
Patch Code barcode symbol: |
|
|
BARCODE_1D_PATCH_CODE |
[0x04000001] Patch Code type. |
|
Postal barcode symbols: |
|
|
BARCODE_1D_POST_NET |
[0x04000002] Postnet type. |
|
BARCODE_1D_PLANET |
[0x04000004] Planet type. |
|
4 State barcode symbols: |
|
|
BARCODE_1D_AUST_POST |
[0x04000008] Australian Post 4 State type. |
|
BARCODE_1D_RM4SCC |
[0x04000010] Royal Mail (RM4SCC) 4 State type. |
|
BARCODE_1D_USPS4BC |
[0x04000080] USPS OneCode 4-State (4BC) type |
|
GS1 Databar (formerly RSS14) Stacked barcode symbols: |
|
|
BARCODE_1D_RSS14_STACKED |
[0x04000020] GS1 Databar (formerly RSS14) Stacked / Stacked Omni-Directional types. Used instead of GS1 Databar (formerly RSS14) if the available space is too narrow for the standard GS1 Databar. |
|
BARCODE_1D_RSS14_EXP_STACKED |
[0x04000040] GS1 Databar (formerly RSS14) Expanded Stacked barcode type. Used instead of GS1 Databar (formerly RSS14) Expanded if the available space is too narrow to fit in one line. |
|
PDF417 barcode symbol: |
|
|
BARCODE_PDF417 |
[0x20002000] PDF417 type. |
|
MicroPDF417 barcode symbol: |
|
|
BARCODE_MICRO_PDF417 |
[0x20000001] MicroPDF417 type. |
|
Data Matrix barcode symbol: |
|
|
BARCODE_DM_10x10 |
[0x10000102] Data Matrix Type 10x10. |
|
BARCODE_DM_12x12 |
[0x10000103] Data Matrix Type 12x12. |
|
BARCODE_DM_14x14 |
[0x10000104] Data Matrix Type 14x14. |
|
BARCODE_DM_16x16 |
[0x10000105] Data Matrix Type 16x16. |
|
BARCODE_DM_18x18 |
[0x10000106] Data Matrix Type 18x18. |
|
BARCODE_DM_20x20 |
[0x10000107] Data Matrix Type 20x20. |
|
BARCODE_DM_22x22 |
[0x10000108] Data Matrix Type 22x22. |
|
BARCODE_DM_24x24 |
[0x10000109] Data Matrix Type 24x24. |
|
BARCODE_DM_26x26 |
[0x1000010A] Data Matrix Type 26x26. |
|
BARCODE_DM_32x32 |
[0x1000010B] Data Matrix Type 32x32. |
|
BARCODE_DM_36x36 |
[0x1000010C] Data Matrix Type 36x36. |
|
BARCODE_DM_40x40 |
[0x1000010D] Data Matrix Type 40x40. |
|
BARCODE_DM_44x44 |
[0x1000010E] Data Matrix Type 44x44. |
|
BARCODE_DM_48x48 |
[0x1000010F] Data Matrix Type 48x48. |
|
BARCODE_DM_52x52 |
[0x10000110] Data Matrix Type 52x52. |
|
BARCODE_DM_64x64 |
[0x10000111] Data Matrix Type 64x64. |
|
BARCODE_DM_72x72 |
[0x10000112] Data Matrix Type 72x72. |
|
BARCODE_DM_80x80 |
[0x10000113] Data Matrix Type 80x80. |
|
BARCODE_DM_88x88 |
[0x10000114] Data Matrix Type 88x88. |
|
BARCODE_DM_96x96 |
[0x10000115] Data Matrix Type 96x96. |
|
BARCODE_DM_104x104 |
[0x10000116] Data Matrix Type 104x104. |
|
BARCODE_DM_120x120 |
[0x10000117] Data Matrix Type 120x120. |
|
BARCODE_DM_132x132 |
[0x10000118] Data Matrix Type 132x132. |
|
BARCODE_DM_144x144 |
[0x10000119] Data Matrix Type 144x144. |
|
BARCODE_DM_8x18 |
[0x1000011A] Data Matrix Type 8x18. |
|
BARCODE_DM_8x32 |
[0x1000011B] Data Matrix Type 8x32. |
|
BARCODE_DM_12x26 |
[0x1000011C] Data Matrix Type 12x26. |
|
BARCODE_DM_12x36 |
[0x1000011D] Data Matrix Type 12x36. |
|
BARCODE_DM_16x36 |
[0x1000011E] Data Matrix Type 16x36. |
|
BARCODE_DM_16x48 |
[0x1000011F] Data Matrix Type 16x48. |
|
QR barcode symbol: |
|
|
BARCODE_QR_DEF |
[0x08000300] Default QR Code size |
|
BARCODE_QR_M2_1 |
[0x08000301] QR Code Model 2, Version 1 |
|
BARCODE_QR_M2_2 |
[0x08000302] QR Code Model 2, Version 2 |
|
BARCODE_QR_M2_3 |
[0x08000303] QR Code Model 2, Version 3 |
|
BARCODE_QR_M2_4 |
[0x08000304] QR Code Model 2, Version 4 |
|
BARCODE_QR_M2_5 |
[0x08000305] QR Code Model 2, Version 5 |
|
BARCODE_QR_M2_6 |
[0x08000306] QR Code Model 2, Version 6 |
|
BARCODE_QR_M2_7 |
[0x08000307] QR Code Model 2, Version 7 |
|
BARCODE_QR_M2_8 |
[0x08000308] QR Code Model 2, Version 8 |
|
BARCODE_QR_M2_9 |
[0x08000309] QR Code Model 2, Version 9 |
|
BARCODE_QR_M2_10 |
[0x0800030A] QR Code Model 2, Version 10 |
|
BARCODE_QR_M2_11 |
[0x0800030B] QR Code Model 2, Version 11 |
|
BARCODE_QR_M2_12 |
[0x0800030C] QR Code Model 2, Version 12 |
|
BARCODE_QR_M2_13 |
[0x0800030D] QR Code Model 2, Version 13 |
|
BARCODE_QR_M2_14 |
[0x0800030E] QR Code Model 2, Version 14 |
|
BARCODE_QR_M2_15 |
[0x0800030F] QR Code Model 2, Version 15 |
|
BARCODE_QR_M2_16 |
[0x08000310] QR Code Model 2, Version 16 |
|
BARCODE_QR_M2_17 |
[0x08000311] QR Code Model 2, Version 17 |
|
BARCODE_QR_M2_18 |
[0x08000312] QR Code Model 2, Version 18 |
|
BARCODE_QR_M2_19 |
[0x08000313] QR Code Model 2, Version 19 |
|
BARCODE_QR_M2_20 |
[0x08000314] QR Code Model 2, Version 20 |
|
BARCODE_QR_M2_21 |
[0x08000315] QR Code Model 2, Version 21 |
|
BARCODE_QR_M2_22 |
[0x08000316] QR Code Model 2, Version 22 |
|
BARCODE_QR_M2_23 |
[0x08000317] QR Code Model 2, Version 23 |
|
BARCODE_QR_M2_24 |
[0x08000318] QR Code Model 2, Version 24 |
|
BARCODE_QR_M2_25 |
[0x08000319] QR Code Model 2, Version 25 |
|
BARCODE_QR_M2_26 |
[0x0800031A] QR Code Model 2, Version 26 |
|
BARCODE_QR_M2_27 |
[0x0800031B] QR Code Model 2, Version 27 |
|
BARCODE_QR_M2_28 |
[0x0800031C] QR Code Model 2, Version 28 |
|
BARCODE_QR_M2_29 |
[0x0800031D] QR Code Model 2, Version 29 |
|
BARCODE_QR_M2_30 |
[0x0800031E] QR Code Model 2, Version 30 |
|
BARCODE_QR_M2_31 |
[0x0800031F] QR Code Model 2, Version 31 |
|
BARCODE_QR_M2_32 |
[0x08000320] QR Code Model 2, Version 32 |
|
BARCODE_QR_M2_33 |
[0x08000321] QR Code Model 2, Version 33 |
|
BARCODE_QR_M2_34 |
[0x08000322] QR Code Model 2, Version 34 |
|
BARCODE_QR_M2_35 |
[0x08000323] QR Code Model 2, Version 35 |
|
BARCODE_QR_M2_36 |
[0x08000324] QR Code Model 2, Version 36 |
|
BARCODE_QR_M2_37 |
[0x08000325] QR Code Model 2, Version 37 |
|
BARCODE_QR_M2_38 |
[0x08000326] QR Code Model 2, Version 38 |
|
BARCODE_QR_M2_39 |
[0x08000327] QR Code Model 2, Version 39 |
|
BARCODE_QR_M2_40 |
[0x08000328] QR Code Model 2, Version 40 |
|
BARCODE_QR_M1_1 |
[0x08000329] QR Code Model 1, Version 1 |
|
BARCODE_QR_M1_2 |
[0x0800032A] QR Code Model 1, Version 2 |
|
BARCODE_QR_M1_3 |
[0x0800032B] QR Code Model 1, Version 3 |
|
BARCODE_QR_M1_4 |
[0x0800032C] QR Code Model 1, Version 4 |
|
BARCODE_QR_M1_5 |
[0x0800032D] QR Code Model 1, Version 5 |
|
BARCODE_QR_M1_6 |
[0x0800032E] QR Code Model 1, Version 6 |
|
BARCODE_QR_M1_7 |
[0x0800032F] QR Code Model 1, Version 7 |
|
BARCODE_QR_M1_8 |
[0x08000330] QR Code Model 1, Version 8 |
|
BARCODE_QR_M1_9 |
[0x08000331] QR Code Model 1, Version 9 |
|
BARCODE_QR_M1_10 |
[0x08000332] QR Code Model 1, Version 10 |
|
BARCODE_QR_M1_11 |
[0x08000333] QR Code Model 1, Version 11 |
|
BARCODE_QR_M1_12 |
[0x08000334] QR Code Model 1, Version 12 |
|
BARCODE_QR_M1_13 |
[0x08000335] QR Code Model 1, Version 13 |
|
BARCODE_QR_M1_14 |
[0x08000336] QR Code Model 1, Version 14 |
|
BARCODE_QR_M1_DEF |
[0x08000337] Default Model 1 QR Code size |
nUnits |
Unit of measure for the rcBarLocation member. Possible values are: |
|
|
Value |
Meaning |
|
BARCODE_SCANLINES_PER_PIXELS |
[0] the rcBarLocation rectangle is measured in pixels. |
|
BARCODE_INCHES |
[1] the rcBarLocation rectangle is measured in inches. You must multiply the search area by 100 when using the L_BarCodeWrite function. |
|
BARCODE_MILLIMETERS |
[2] the rcBarLocation rectangle is measured in mm. |
rcBarLocation |
The barcode location on the bitmap. |
|
nSizeofBarCodeData |
Barcode data size. If it is zero, the string length will be considered as data size. |
|
pszBarCodeData |
Pointer to the barcode data string. |
nIndexDuplicate |
Index to the next duplicated barcode. This member will be filled only by L_BarCodeRead function. Possible values are: |
|
|
Value |
Meaning |
|
>=0 |
Next duplicated index. |
|
-1 |
The barcode is not duplicated. |
|
0xFF |
The barcode is the last duplicated one. |
nTotalCount |
Total barcode count found by L_BarCodeRead function. |
|
nDupCount |
Total count of bar codes duplicated for the current bar code. This member is filled by the L_BarCodeRead function. |
|
uFlags |
Flags. This member will be filled only by L_BarCodeRead function. Possible value is: |
|
|
Value |
Meaning |
|
BARCODE_MICRO_PDF417_LINKED |
MicroPDF417 is linked to a linear symbol printed below it. |
uDataCode |
MicroPDF417 start code word function for Code128 emulation. This member will be filled by the L_BarCodeRead function when reading a MicroPDF417 symbol. |
Comments
This structure will be filled by L_BarCodeRead when reading in barcode information.
You can also fill this structure before calling L_BarCodeWrite to print the barcode symbol on the bitmap.
Australian post barcode string has a special format to distinguish different fields (i.e. FCC, DPID, and CIF). The string format puts dashes between fields as follows: FCC-DIPD-CIF, where FCC is a 2-digit field (valid values are 11, 87, 45, 92, 59, 62, and 44), DPID is an 8-digit field representing the address, and CIF (optional) represents the customer information field. For more information, please refer to the standard. This string format applies for both read/write functions.
GS1 Databar (formerly RSS14) Expanded and Expanded Stacked strings need to be written conforming to a string format that indicates a particular encoding method, such as Method 1, Method 0100, Method 0101. For example, a string (01)00012345678905(10)ABC123 is encoded using Method 1 (i.e. General Identification Data). Note that 14th digit of the item identification number (jn this case, "5"), if it exists, is considered as a check digit and is ignored. A string that is written without following any of these special encoding formats will be encoded by Method 00 (i.e. General Purpose Data).
When read, an extra digit in curly brackets (i.e. { and }) is added to indicate the linkage bit at the beginning of the string. The curly brackets are not part of the encoded barcode data, and they are not defined in the standard. Rather, they distinguish the linkage digit from other data. For example, if a barcode is written with string (01)00012345678905(10)ABC123 while the linkage bit is set to zero, the read function result will be {0}(01)00012345678905(10)ABC123, where {0} is the linkage digit and the remaining characters are the barcode data.
Notes: |
|
The following table contains information for writing linear 1D barcodes:
|
EAN 13 |
EAN 8 |
UPC A |
UPC E |
GS1 Databar (RSS14) Omnidirectional & Stacked |
GS1 Databar (RSS14) Limited |
GS1 Databar (RSS14) Expanded & Expanded Stacked |
Code 3 of 9 (Code 39)
|
CODABAR |
Code 128
|
Code Interleaved Q = Quiet Zone 36 elements |
EAN EXT 5 |
EAN EXT 2 |
Code Standard 2 of 5 (Industrial 2 of 5) Q = Quiet Zone 36 elements |
MSI
|
Code11 |
Numerical digits |
0-9 |
0-9 |
0-9 |
0-9 |
0-9 |
0-9 |
0-9 |
0-9 |
0-9 |
All ASCII characters |
0-9 |
0-9 |
0-9 |
0-9 |
0-9 |
0-9 |
Alphanumeric characters |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
A-Z, a-z, and spacebar |
A-Z and spacebar |
N/A |
|
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
Special characters. |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
! % & ( ) * + , - . / : ; < = > _ ? |
- . $ % + / |
- . $ % + / |
|
N/A |
N/A |
N/A |
N/A |
N/A |
- |
Data Length |
12 |
7 |
11 |
6 or 11 |
13 |
13 |
N/A |
1-63 |
1-63 |
3-63 |
1-63 |
5 |
2 |
1-63 |
1-63 |
1-63 |
Min. width (pixels) |
113 |
80 |
113 |
70 |
96 |
74 |
N/A |
15(n+4) |
N/A |
11(n+5) |
n9+ 9+ Q |
65 |
38 |
19(n+1) + Q |
16n + 9 + Q |
N/A |
Double width (pixels) |
226 |
170 |
226 |
140 |
192 |
148 |
N/A |
30(n+4) |
N/A |
22(n+5) |
2(n9+ 9+ Q) |
130 |
76 |
2(19(n+1) + Q) |
2(16n + 9 + Q) |
N/A |
Triple width (pixels) |
339 |
255 |
339 |
210 |
288 |
222 |
N/A |
45(n+4) |
N/A |
33(n+5) |
3(n9+ 9+ Q) |
195 |
114 |
3(19(n+1) + Q) |
3(16n + 9 + Q) |
N/A |
Quad width (pixels) |
452 |
340 |
452 |
280 |
384 |
296 |
N/A |
60(n+4) |
N/A |
44(n +5) |
4(n9+ 9+ Q) |
260 |
152 |
4(19(n+1) + Q) |
4(16n + 9 + Q) |
N/A |
Quintuple width (pixels) |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
|
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
FNC1 Char Set A |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
0x80 |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
FNC2 Char Set A |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
0x81 |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
FNC3 Char Set A |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
0x82 |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
FNC4 Char Set A |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
0x83 |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
FNC1 Char Set B |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
0x84 |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
FNC2 Char Set B |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
0x85 |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
FNC3 Char Set B |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
0x86 |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
FNC4 Char Set B |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
0x87 |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
FNC1 Char Set C |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
0x88 |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |