DotCode Font and Encoder User Manual


IDAutomation DotCode products are compliant with the AIM specification Rev. 4.00 2019 and GS1 General Specifications v20 2020. To print DotCode as a font, the data must first be formatted with a font encoder, which will return a text string that, when combined with the IDAutomation 2D Font, will create an accurate DotCode symbol. The font encoders provided by IDAutomation include the unique ability to generate the symbol from the IDAutomation2D font or common system font such as Courier New.

Buy License Download Demo Release Log

How to Encode Data in DotCode

The rules to format and encode data in DotCode are different than any other barcode type. The primary difference is that a leading FNC1 character is assumed by the barcode scanner when the data begins with a number.

  • Data that begins with a number is automatically considered to be GS1 formatted data.
    Example: 0130012345678906 encodes (01) 30012345678906
  • Data that begins with a letter is considered to be general purpose and not formatted to GS1.
  • Data that begins with the FNC1 (~1) is considered to be data not formatted for use with GS1. This is the opposite of all other barcode types. However, it is by design to reduce the symbol size when used with the GS1 system.


Installation is a two-step process:

  1. Extract the files from the product zip file and Install the IDAutomation 2D barcode font version 2020 or later. Earlier versions of the IDAutomation 2D font are not compatible.
  2. Implement a Font Encoder. Refer to the integration tutorials below for the available font encoders.

Integration Tutorials

The tutorial links provided may show other barcode types being used. The process for implementation of DotCode is the same except for the calling function. For example, instead of IDAutomation_QRCode, the function would be IDAutomation_DotCode. Refer to the examples in the integration folder provided with purchase for more information and working examples.


Font Encoder Return Types

The default ReturnType of "0" should be used in most situations, which formats data in circles to the IDAutomation2D Font directly according to the AIM and GS1 specifications. IDAutomation also offers a few other options to display as squares with the IDAutomation2D Font or display as small dots with Courier New, Consolas, or any other unicode compatible monospaced system font. When using ReturnTypes > 1 the area consumed by the symbol is about 4 times larger than when using the IDAutomation2D Font.

Font Encoder Return Type Examples

The above symbols were generated using 42012345~1910112345678912345678~m29 as the data to encode. This encodes the GS1 data of (420) 12345 (91) 01123456789123456789

Sizing and Aspect Ratios

The aspect ratio is set with a two digit number where the first number is for columns and the second for rows. The default ratio is 21 which means 2 times more columns than rows. Specifications recommend aspect ratios between 12 and 21, however, ratios between 18 and 81 are acceptable to most scanners. IDAutomation allows the setting of any aspect ratio between 19 and 91.

Aspect ratio samples between 18-81:

Example DotCode Aspect Ratios 18-81

Tilde Options

Enabling ApplyTilde will allow the following;

FNC1 - FNC3 may be encoded using ~1 for FNC1, ~2 for FNC1, and ~3 for FNC3.

ASCII characters and functions may be directly encoded using the format ~d??? where ??? is the ASCII number. This is commonly used to encode functions such as a tab (~d009) and the return (~d013).

Calculation options where ?? is the number of digits before the tilde to include in the calculation:

  • ~m?? calculates a MOD10 check character, commonly used for GS1.
    Example: 0000801234999999999~m17  
    Encodes: (00) 008012349999999997
  • ~f?? calculates a MOD43 check character, commonly used for HIBC.
    Example: +A123BJC5D6E71~f14 
    Encodes: +A123BJC5D6E71G
  • ~i?? calculates a MOD37-2 check character, commonly used for ISBT.
    Example: G123412654321~i13 
    Encodes: G123412654321L