At Serialogical one of the first programs that we designed was to create and print out DataMatrix codes for FMD. The NMVS provided us as an approved developer lists of codes but no DataMatrices. In the early days of FMD development there was no source of valid approved DataMatrix codes so we had to make our own.
2DBarcodeCreator creates DataMatrix codes in the FMD format including the global separator and the number codes between the 4 elements (Product Code, Serial Number, Batch and Expiry).
When it reads the codes back through a scanner the display takes the global separator and displays it as <GS> where the scanner sees it. The global separator is key to rapid processing of FMD codes. If your scanner does not display the <GS> when a pack code is scanned the scanner has not been properly set up fof FMD.
2DBarcodeCreator will also create aggregate codes for packs within a single batch. The source file is in the format: Product Code, Batch, Expiry Date, Serial Number.
The new aggregate code is separated by commas and only includes the Product Code, Batch and Expiry once. The Serial Numbers of the aggregate are repeated. This is to reduce the aggregate code size by avoiding repeated data. The data capacity of a DataMatrix is relatively large but the more data inserted the corresponding increase in physical size of the DataMatrix. Large sized matrices will be impossible for many scanners to read unless the printer and scanner resolution are high specification.
2DBarcodeCreator allows a choice of aggregate size. This is the number of individual pack codes in a single aggregate. When a file is read it is split into aggregate DataMatrices based on the aggregate size with any left over placed in the final DataMatrix. For example 22 packs at an aggregate of 8 would print as 8, 8, 6 codes per matrix.