Universal Barcode Font User Manual
If a scanner is needed, consider the IDAutomation
USB Barcode Reader.
Installing the Universal Barcode Fonts
After installing the Universal Barcode Font Advantage Package, the appropriate
font
encoder tool should be implemented.
To Install the Package in Windows:
Run the Install.exe setup utility. This utility will install the most
commonly-used fonts and encoders.
Installing the Fonts on Macintosh OS X:
Run the IDAutomation Universal Font for MAC.mpkg setup utility. The TrueType
fonts will be installed in the Library/Fonts folder. The complete package,
including the additional fonts and examples, will be found in an IDAutomation
folder under Applications.
Installing PCL Fonts:
For information about installing PCL fonts, refer to the
PCLinfo.html
document provided in the PCL folder of the package.
Installation Procedures for Linux, Unix and Other Systems
Universal Font Tools and Encoders
IDAutomation Universal Barcode Fonts must be used in conjunction with special
font encoder tools. These
tools convert the data-to-encode into a special text string that will
generate an accurate barcode when combined with
the Universal font.
The
source
code in the
Universal font encoder index is provided as a download with all purchases. The Native
VBA code is also supplied in the examples. Additionally, 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 and a signed
Source Code
Agreement. The source code included with purchase does require an Unlimited
Developer License.
Native Windows DLL API
Advanced programmers that have an understanding of how Windows DLLs work
should only use the API of the Native Windows DLL. For all other purposes,
using other font encoder tools 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
An Excel example is provided and is located in the Examples folder of
the ZIP file.
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 tools are preceded with IDAutomation_Uni_.
Distributing Fonts & Encoders with an Application
IDAutomation font encoder tools and files may be distributed
royalty-free as part of an application
according to the
License Agreement, with the purchase of a Developer License.
| Windows
Barcode Font Encoder DLL |
|
File Type |
Distributition File |
Notes |
| Font File |
IDAutomation Uni ???.ttf |
The TrueType font. Other font files in the
package may be distributed as necessary. |
| Encoder DLL |
IDAutomationNativeFontEncoder.dll |
This is the encoder DLL that formats data
to font. It can be found in the Windows/System32 directory after
installation. It is small and has no
dependencies because it was created with
C++. |
| Crystal
Reports Barcode Font Encoder UFL |
|
File Type |
Distribution File |
Notes |
| Font File |
IDAutomation Uni ???.ttf |
The TrueType font. Other font files in the
package may be distributed as necessary. |
| Encoder UFL |
CRUFLidautomation.dll |
This Crystal User Function Library formats
data to the font. It can be found in the Windows/System32 directory after
installation or placed in the Windows/Crystal directory.
It is small and has no dependencies because
it was created with C++. |
| Distribution
using Source Code |
|
File Type |
Distribution File |
Notes |
| Font File |
IDAutomation Uni ???.ttf |
The TrueType font. Other font
files in the package may be distributed as necessary. With a
signed
Source Code Agreement, the source code can be integrated
directly into an application, eliminating the need to distribute
any DLLs. |
Note: Redistribution of IDAutomation fonts and components requires a
Developer License.
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:
12 * (X dimension needed) / (X dimension
at 12 points) = (point size)
For example, to set an X dimension of 12 mils, print
it at 14 points because:
12 * 12 / 10 = 14
|
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 determines
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 * (height wanted) / (height at 12 points) = (point size converted
to integer)
For example, if using IDAutomation Uni M and the height should be
about .75" tall, print at 18 points because:
12 * .75 / .5 = 18
|
The following functions return data formatted
to IDAutomation's Universal Barcode Font and are available in many of the
font encoder tools. 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 will automatically encode 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
(UCC/EAN-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.
For example, the UCC number of (8100)712345(21)12WH5678 should be
entered as a formula of:
IDAutomation_Uni_C128 ("~2028100712345~2022112WH5678",
TRUE)
or
IDAutomation_Uni_C128 ("Ê" &
{Table1.DataField1} & "Ê"
& {Table1.DataField2}, TRUE)
More information about
AI's and GS1-128 / UCC/EAN-128.
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 UCC/EAN barcodes according to IDAutomation's
Code128 Barcode FAQ. For example:
IDAutomation_C128HR ("Ê" & "8100712345" &
"Ê" & "2112345678",
TRUE )
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 ) |
| 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
OneCode section of the USPS 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. |
| UCC128(DataToEncode) |
This symbology option automatically
encodes the FNC1 character in set C as required for UCC-128 barcodes.
All functions of ApplyTilde are enabled
in this function for calculating the required MOD 10 check digit
and cannot be disabled, for example:
IDAutomation_Uni_UCC128 ("00000123455555555558"
& "~m19" ) For more information, visit the
UCC/EAN FAQ. |
| MODU10(DataToEncode) |
A single MOD 10 check digit
is returned. This is useful in calculating check digits for UCC/EAN
128 barcodes where a MOD check digit is needed. More information
about
UCC/EAN-128 is located here. |
| GS1-128 (UCC/EAN-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 of 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. For more information, refer to the
USPS portion of the Code 128 FAQ and the UCC/EAN portion of
the
Code128 Barcode FAQ. |
| SCC14 |
The following formula will
create SCC14 in Code 128:
IDAutomation_Uni_C128 ("~202" & "013001234567890"
& "~m13", TRUE
)
For more information, refer to the UCC/EAN portion of IDAutomation's
Code128 Barcode FAQ. |
| SSCC18 |
The following formula will
create SCC18 in Code 128:
IDAutomation_Uni_C128 ("~202" & "0000801234999999999"
& "~m17", TRUE
)
For more information, refer to the UCC/EAN portion of IDAutomation's
Code128 Barcode FAQ. |
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.
The following may be performed on a Windows PC to verify that the font
is working properly.
- Install the package on a Windows PC by running the Install.exe
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 and the Windows DLL is formatting the data properly for the font.
To troubleshoot any existing problems further, refer to IDAutomation's
Font Problems and Solutions, the
IDAutomation Support Forum or
contact support.
Back to Top
|