Barcode Xpress for Node.js v13.3 - Updated
Data Matrix
User Guide > Concepts > Barcode Specifications > Barcode Types > Data Matrix

The Data Matrix barcode is a variable-length, alphanumeric 2D barcode with an Reed Solomon Error Correction that can read codes that are as much as 40% damaged. Data Matrix barcodes are widely used and can encode large amounts of information (over 3,000 characters).

Example Barcode

The following example barcode encodes the information "Barcode Xpress - Data Matrix Writer" as an Data Matrix barcode:

Data Matrix

Details

Data Matrix's newest error correction specification is ECC 200, which utilizes Reed-Solomon error correction. ECC 000 - 140 used convolutional error correction. ECC 200 is recommended and is the ECC specification supported by Barcode Xpress. ECC 200 has a structured append feature that allows combining up to 16 Data Matrix symbols, but which Barcode Xpress does not support.

Barcode Breakdown

As with other 2D barcodes, Data Matrix has a finder pattern to detect and preprocess the barcode before decoding. Data Matrix uses an L-shaped black bar on the left and bottom edges of the symbol for orientation and deskewing, and alternating black and white cells on the top and right edges to determine cell size and structure. The barcode's data lies within the bounds these patterns establish.

Data Matrix (ECC 200) supports 6 different encoding schemes: ASCII, C40, Text, X12, EDIFACT, and Base 256. Similar to Code 128, inserting special characters allows switching between encoding schemes. The basic encodation scheme that begins the barcode is ASCII.

Managing Organization

The Data Matrix is governed by ISO/IEC 16022:2006. 1

Notes

General Notes

Performance Enhancement: Barcode Xpress is designed to optimize speed for the Data Matrix barcode recognition type as it takes advantage of the SSE2 (Streaming SIMD Extensions 2) technology provided in some computer processors with the initial release of the Pentium 4 architecture. This SSE2 technology allows for more efficient pixel processing, significantly improving image recognition time. Computer processors not supporting SSE2 will not provide this performance enhancement and will automatically use the same processing algorithm as all prior releases.

Caution: The image will be converted internally to an 8 bpp image for performance enhancement which will consume more memory but improve recognition performance.

Caution: An anomaly has been identified for Data Matrix 144 x 144 barcodes written by several competitors' components. For this size only, barcodes created using those components do not adhere to the Data Matrix barcode specification. Because Accusoft does adhere to the Data Matrix specification, those competitors' components will not correctly read 144 x 144 size Data Matrix written by Barcode Xpress.

When reading 144 x 144 Data Matrix barcodes, Barcode Xpress will assume that the barcodes adhere to the specification. If reading fails, the component will automatically attempt to apply the recognition algorithm that will work on barcodes written by the competitors components, and report the results. The barcode reader will not be notified that the barcode did not adhere to the specification. For these barcodes only, recognition speed will be impacted.

Platform-Specific Notes

Caution: When using trial (unpaid) licensing, the words " UNLICENSED accusoft.com " will appear in the middle of every Data Matrix, QR Code and PDF417 barcode created, taking up 25 bytes of space including the leading and trailing spaces. When testing the contents of generated barcodes, be aware of the extra space requirements.

The 1D/2D Professional edition supports creating QR Code, PDF417, and Data Matrix barcodes which can then be written using the ImagXpress control or by writing to a Printer Device Context. Your application logic will set the barcode writing parameters and make a call to the Create method. The output image will then be returned in the call. Included features to use with this functionality are:

  • BarcodeData - Barcode data returned as an array of bytes.
  • RowsAndColumns - This value is used to set the number of rows and columns.
  • RowsAndColumnsCreated - The number of rows and columns created.
  • RequiredHeight - An output height value is required to create the barcode image.
  • RequiredWidth - An output width value is required to create the barcode image.

Caution: When using trial (unpaid) licensing, the words " UNLICENSED accusoft.com " will appear in the middle of every Data Matrix, QR Code and PDF417 barcode created, taking up 25 bytes of space including the leading and trailing spaces. When testing the contents of generated barcodes, be aware of the extra space requirements.

The 1D/2D Professional edition supports creating QR Code, PDF417, and Data Matrix barcodes which can then be written using the ImagXpress control or by writing to a Printer Device Context. Your application logic will set the barcode writing parameters and make a call to the MakeBarcode method. The output image will then be returned in the call. Included features to use with this functionality are:

  • MakeBarcodeStyle - The type of barcode to create.
  • MakeBarcodeDataValueLength - Gets the length of the current barcode data in bytes.
  • MakeBarcodeRows - This value is used to set the number of rows.
  • MakeBarcodeRowsCreated - The number of rows created.
  • MakeBarcodeColumns - This value is used to set the number of columns to create.
  • MakeBarcodeColumnsCreated - The number of columns created.
  • MakeBarcodeRHeight - An output height value is required to create the barcode image.
  • MakeBarcodeRWidth - An output width value is required to create the barcode image.

References

  1. "Data Matrix Bar Code Symbology Specification." ISO/IEC 16022:2006, ISO/IEC, Sep. 2006, www.iso.org/standard/44230.html.



For more information, see the Barcode Xpress SDK product page or try our online demos.