DataMatrix support in Barcode4J

Thunderhead has kindly sponsored an implementation of the DataMatrix barcode symbology (ISO/IEC 16022:2000(E)) for Barcode4J. This is now the second 2D symbology I was able to add to the codebase. Although it’s not a complete implementation of the spec, all the important features are implemented. The restrictions (such as lack of structured append and ECI functionality) will be documented in detail on the Barcode4J website.
DataMatrix examples (square and rectangular)

Since the specification is quite complex, it could be that there may still be a bug hidden somewhere, so I’d be very grateful for some feedback. The Barcode4J release is almost ready. Stay tuned!

Posted in Barcodes
6 comments on “DataMatrix support in Barcode4J
  1. theatermania says:

    Hey — I’m so glad you’re doing 2D barcodes… I’d really like to be able to use them — any update on when version 2.0 will be released?

    Keep up the good work!

  2. Jeremias says:

    Preparing 2.0 takes much longer than anticipated but I should have something in 24 hours. I count on it that you’ll help me verify the implementation.

  3. martin says:

    Nice Toolkit! I’ve tried the datamatrix encoding and encoded small texts. Iit works fine.
    If I encode texts with length around 30 character I get not anymore the same result than with two other online generators.
    If I encode a05ba7ba-ec61-11cf-8000-010157aa0 in ASCII the result was

    the other two return

    1 is a black quare and 0 a white one

  4. Jeremias says:

    But does the symbol generated by Barcode4J scan correctly with your scanner? I bet it does. There is more than one way to actually encode a particular message. DataMatrix knows 6 different ways to encode text. I’ve just tested your example message and it scans well with my barcode scanner. So unless your scanner cannot read the symbol generated by Barcoce4J the difference you reported is not a problem.

    What I saw during testing is that in some special cases some (not all) barcode readers cannot decode a particular symbol, even though I’m pretty sure the symbol I generated was correct. But having implemented the specification I can say that ISO/IEC 16022:2000(E) is not unambiguous in some places.

  5. martin says:

    Thanks a lot for your very fast responce. We will get a new software which scans our documents (extended with the 2D-barcode). It’s not yet delivered/installed und so I’m not able to verify it with this software.

    Again, many thanks for you fast answer and the good news.

  6. theatermania says:

    Awesome — I’ve asked our development team to evaluate the alpha (I’m just one of the suits so I can’t offer any meaningful feedback ;-) ).

    I’ll let you know what they say…