Universal 1D Barcode Font User Manual
Encoders Download Demo Buy License
Installing the Universal Barcode Fonts
Windows installers are provided for this product as a courtesy. This installer is available as an EXE file in the root of the downloaded zip. To install this product on Mac, Linux, Android, iOS, or other platforms the following two steps are required:
- Install the desired barcode font. Refer to the chart below or the specifications from the online user manual to determine the needed size.
- Implement a font encoder to format the data to the barcode font. All barcode fonts require the data to be reformatted before the barcode font is applied.
Installing PCL Fonts:
For information about installing PCL fonts, refer to the PCLinfo.html document provided in the package's PCL folder.
Universal Font Encoders
IDAutomation Universal Barcode Fonts must be used in conjunction with special font encoders. When combined with the Universal font, these encoders convert the data-to-encode into a special text string that will generate an accurate barcode.
Encoder Source Code Availability
The source code mentioned in the Universal Font encoder index is provided as a download with all purchases. The Native VBA code is also supplied in the examples. Additional source code to any single compiled encoder such as the Crystal UFL, Excel Add-In, or the FileMaker Plug-in is available with the purchase of an Unlimited Developer License.
Universal Font Implementation Tutorials
Implementation of IDAutomation Universal Barcode Fonts is accomplished with special font encoder tools. Tutorials are provided in each of these packages with the only difference being that the functions in the font encoders are preceded with IDAutomation_Uni_.
Distributing Fonts & Encoders with an Application
IDAutomation font encoders and files may be distributed royalty-free as part of an application according to the License Agreement, with the purchase of a Developer License.
Universal Barcode Font Specifications
Known as the X-Dimension, the width of the narrowest bar in the symbol is listed below for various point sizes. IDAutomation's Universal Barcode Fonts have been specially designed to generate accurate barcodes when printed at large and small points. For example, the IDAutomation USB Barcode Scanner dependably reads this font when printed as small as 6 points.
Font Point Size | Approximate X-Dimension (1 mil = .001") | |
48 | .102 cm | 40 mil |
36 | .076 cm | 30 mil |
32 | .069 cm | 27 mil |
30 | .064 cm | 25 mil |
28 | .058 cm | 23 mil |
24 | .051 cm | 20 mil |
20 | .043 cm | 17 mil |
18 | .038 cm | 15 mil |
16 | .033 cm | 13 mil |
12 | .025 cm | 10 mil |
8 | .018 cm | 7 mil |
6 | .013 cm | 5 mil |
* To print at a different X dimension, find
the point size that has the closest X dimension to what is needed
and use this formula to find the point size: |
When using a printer with less than 600 DPI, print at the following point sizes to create accurate barcodes:
203 DPI Thermal Printer | 300 DPI Printer |
6, 12, 18, 24, 30, 36 | 4, 8, 12, 16, 20, 24, 28, 32, 36 |
Several font versions are provided to support different height/width requirements. The last characters in the font name determine the height of the barcode with the shortest being XXS and the tallest being XXL. Each single font may be printed at various point sizes, which means several combinations of heights and widths may be produced.
Purchased Font | Evaluation Font* | Font height @12 pts* | Notes |
IDAutomation Uni XXS | IDAutomation SUni XXS | .10" or .254 CM | |
IDAutomation Uni XS | IDAutomation SUni XS | .20" or .508 CM | Includes USPS Postnet & Intelligent Mail at normal intensity |
IDAutomation Uni S | IDAutomation SUni S | .35" or .889 CM | Includes USPS Postnet & Intelligent Mail narrow by 10% |
IDAutomation Uni M | IDAutomation SUni M | .50" or 1.27 CM | Includes USPS Postnet & Intelligent Mail narrow by 20% |
IDAutomation Uni L | IDAutomation SUni L | .60" or 1.46 CM | |
IDAutomation Uni XL | IDAutomation SUni XL | .75" or 1.90 CM | |
IDAutomation Uni XXL | IDAutomation SUni XXL | 1" or 2.54 CM | |
* Measurements are approximate and were measured
when printed at 12 points, which should work for most scanners.
At 12 points, the X dimension is 10 mils.
To print at a different height, find the font that has the height
closest to what is needed and use this formula to find the point
size: 12 * .75 / .5 = 18 |
Functions
The following functions return data formatted to IDAutomation's Universal Barcode Font and are available in many font encoders. All of the functions listed below are preceded with IDAutomation_Uni_. The data type returned is a string and the input type for DataToEncode is a string.
Function | Notes |
C128(DataToEncode, ApplyTilde) | This "Code
128 Auto" function automatically encodes data from ASCII
1 to ASCII 127. It will automatically switch to character set C
to encode numbers as necessary. To encode alpha-numeric GS1-128, ASCII 202 character Ê (or the appropriate
tilde option such as ~202) is entered as the FNC1 before each
AI. When any barcode begins with the FNC1, it automatically starts
in Set C as required. If ApplyTilde is set to True, the tilde will be processed. ApplyTilde is False by default. |
C128HR(DataToEncode, ApplyTilde) | If creating Code 128 barcodes
that need the text formatted, use this function. It is generally
only used to format the text for GS1 barcodes according to IDAutomation's
GS1-128 Barcode FAQ. For example: If ApplyTilde is set to True, the tilde will be processed. ApplyTilde is True by default in this function. |
C128A(DataToEncode) | Formats output to set A of Code-128. Use caution with this option because any lowercase character creates a function. Use the letter "i" for a tab and "m" for a return. For most purposes, it is better to use the C128() function. |
C128B(DataToEncode) | Formats output to Code-128, character set B. For most purposes, it is better to use the C128() function. |
C128C(DataToEncode) | This function "interleaves" even numbers into pairs for high density. An even number of digits is required. For most purposes, it is better to use the C128() function. |
C39(DataToEncode, N_Dimension, IncludeCheckDigit) | Generates Code 3 of 9 with the universal font. A MOD 43 checksum will be calculated if IncludeCheckDigit is true. For example: IDAutomation_Uni_C39 ("123456789", 3, TRUE ) |
C93(DataToEncode) | Generates Code 93 with the universal font. |
Codabar(DataToEncode, N_Dimension, StartChar, StopChar) | Creates Codabar (aka NW7) with the universal font. StartChar and StopChar are also required as the start and stop characters. Valid start and stop characters are A, B, C, and D. |
I2of5(DataToEncode, N_Dimension, IncludeCheckDigit) | This function "interleaves" numbers into pairs for high density in the Interleaved 2 of 5 format and formats the return string to the universal font. An even number of digits is required. A MOD 10 checksum will be calculated if IncludeCheckDigit is true. If a MOD10 is calculated, an odd number of digits is required. |
MSI(DataToEncode, N_Dimension, IncludeCheckDigit) | Formats output for bar-coding in the MSI/Plessey symbology. A MOD 10 checksum will be calculated if IncludeCheckDigit is true. |
OneCode(DataToEncode) or IntelligentMail(DataToEncode) |
This function works with the XS, S, or M size of the Universal Font. DataToEncode is a single string according to the USPS IMb FAQ. XS is the normal version, S has the bars narrow by 10% and the M font has the bars narrow by 20%. |
Planet(DataToEncode, IncludeCheckDigit) | This function works with the XS, S, or M size of the Universal Font. A MOD 10 checksum will be calculated if IncludeCheckDigit is true. |
Postnet(DataToEncode, IncludeCheckDigit) | DataToEncode is a single string of Zip, Zip + 4, or Zip + 4 + Delivery Point. This function only works with the XS, S, or M size of the Universal Font. A MOD 10 checksum will be calculated if IncludeCheckDigit is true. |
MODU10(DataToEncode) | A single MOD 10 check digit is returned. This is useful in calculating the check digits for UCC/EAN 128 barcodes where a MOD check digit is needed. |
GS1-128 Barcode Examples: | |
USPS EAN128 | USPS special services labels
such as delivery confirmation are used with the IDAutomation Uni
L font at 16 points. The following formula will create USPS_EAN128
in Code 128: IDAutomation_Uni_C128 ("~202" & "912312214123442441134" & "~m19", TRUE ) Where the number 912312214123442441134 may be replaced with a data field, for example: IDAutomation_Uni_C128 ("~202" & {Table1.DataField1} & "~m19", TRUE ) This number encoded is made up of the following: 2-digit service code + 9-digit customer ID + 8-digit sequential package ID + MOD 10 check digit. |
SCC14 | The following formula will
create SCC14 in Code 128: IDAutomation_Uni_C128 ("~202" & "013001234567890" & "~m13", TRUE ) |
SSCC18 | The following formula will
create SCC18 in Code 128: IDAutomation_Uni_C128 ("~202" & "0000801234999999999" & "~m17", TRUE ) |
Function Descriptions
- DataToEncode: This string value represents the data being encoded.
- N_Dimension: Determines the width of the wide bars, which is a multiple of the X dimension. Valid values are 2, 2.5, and 3. The default is 2. The X dimension is determined by the font point size.
- IncludeCheckDigit: A Boolean value that determines whether a check digit should be automatically calculated and included for the DataToEncode.
- ApplyTilde: If ApplyTilde is enabled, the tilde will be processed and allow several encoding options In Code 128 Auto.
Native Windows DLL API
Advanced programmers who have an understanding of how Windows DLLs work may use the API of the Native Windows DLL. For all other purposes, alternate font encoders may be best. The Native Windows DLL does not return a string value. The return value must be passed as a variable by reference. That being said, there are a few differences between the Native Windows DLL and the functions listed, and they are as follows:
- The function names all begin with IDAutomation_Universal_ instead of IDAutomation_Uni_.
- Return value: Functions return 0 for success or a non-zero value if the function fails.
- Output: String value will be populated by the DLL with the encoded data.
- Output size: Integer value is populated by the DLL with the number of pertinent characters. It may be necessary to use this with the VB mid-function.
For example, in the General Declarations, in a separate module of a VB
application or Excel spreadsheet VBA editor, the function needs to be defined:
Private Declare Function IDAutomation_Universal_C128 _ Lib "IDAutomationNativeFontEncoder.dll" _ ((ByVal D2E As String, Byref tilde As long, _ ByVal out As String, _ ByRef iSize As long)) As Long
The DLL function needs input parameters that are filled by the DLL with
the formatted data. For example:
Public Function IDAutomation_Uni_C128(DataToEncode As String, Optional applyTilde As Boolean = False) As String Dim myOut As String 'Variable to be populated by DLL function with formatted data Dim iSize As long 'The size of the formatted data. Also, populated by the DLL Dim lRetVal As Long 'Return value of the function. Will be zero if successful Dim long_AT As Long 'Variable to be passed to DLL determining if tilde processing should be done. 'Must be a long data type for DLL to accept Dim Data As String 'Data to encode Data = "Testing" myOut = String(250, " ") 'The output variable needs to be sized to hold the data. 'The DLL can not dynamically size a variable iSize = 0 If applyTilde = True Then L_AT = True 'Can be implicitly converted to a long Else L_AT = False End If 'Call the function, passing in the data to encode, a Boolean deciding if tilde processing should be used, 'the output variable, and the variable that will be populated with the size. lRetVal = IDAutomation_Universal_C128(Data, L_AT , myOut, iSize) 'Write out the output string, taking only the number of characters necessary from the defined string Debug.Write = Mid(myOut, 1, iSize) End Function
A VBA example is provided and is located in the Integration folder of the package.
Support and Troubleshooting
The following may be performed on a Windows PC to verify that the font works properly.
- Install the package on a Windows PC by running the installation file.
- After installation, reboot the PC to ensure the font will be recognized by the application.
- Open the Excel example provided with the package, which is an icon located in Start - Programs - IDAutomation Universal Font Advantage - Excel Example.
- Change the text in cell A11 from SC4341207504 to TEST and press enter. Be sure to enter the data in all UPPERCASE.
- Change the font in cell B11 to the Arial font.
- The text data in cell B11 should be exactly EBDEKACECEICEKAFADGIAH.
- This text, when combined with the universal font, will create a correct barcode.
- After the font in cell B11 is changed to the IDAutomation Uni XS font, a correct barcode will be created.
- Print and test decoding the symbol with a barcode scanner.
If the font works properly in Excel as mentioned above, it is installed properly.
To troubleshoot any existing problems further, refer to IDAutomation's Font Problems and Solutions, the IDAutomation Support Forum, or contact support.