[IDAutomation.com Home | Order Now]

# IDAutomation Universal Barcode Font Advantage ™ User Manual

A license is required for each computer this software is installed on; this software may only be used according to the License Agreement. Demo versions of this software may be used for evaluation purposes only

The Universal Barcode Font Advantage ™ is a single font that supports multiple barcode types. It is also designed to be compatible with multiple operating systems and locales, including Double Byte versions of Windows such as those used in China and Japan as well as other Asian locale settings.

Index:

- Universal Barcode Font Advantage ™ Features
- Font tools and encoders available
- Implementation Tutorials
- Distributing files for an application
- Source code provided (optional)
- Specifications
- Font Functions
- Troubleshooting Procedures
- The API of the Native Windows DLL

Universal Barcode Font Advantage Package Features

The IDAutomation Universal Barcode Font Advantage ™ is much more than just a few fonts. The package includes 7 different heights of the universal barcode font as well as the rights to use the font tools, macros and source code for integration into your application. Details of the package are as follows:

- Font Tools Included - for easy integration into applications, we provide several font tools that are free to use with our fonts. Our font tools automatically convert the data that is to be encoded in the barcode to a text string that when combined with our universal bar code font, will create a correct barcode. Source Code is also available in several languages for custom integration. A current list of compatible font tools is available online.
- A Single Font that creates Multiple Barcode Types - supports Code 128, UCC-128, EAN-128, Interleaved 2 of 5, Code 39, USPS Postnet, Planet, MSI and Codabar. This packages does not support UPCA, UPCE, EAN13 or EAN8 barcodes because of the required OCR text characters that must appear below this barcode type. If you have a need for these barcode types, the UPC/EAN Barcode Font Advantage is available and must be purchased separately.
- Multiple Language and Locale Support - a single universal font can be used on multiple operating systems and locales, including Double Byte versions of Windows such as those used in China and Japan as well as other Asian locale settings.
- Cross-platform Support - the unique encoding in our font allows cross-platform support between UNIX, Macintosh and Windows® systems.
- Three Wide to Narrow Ratios Provided - in this package, a single font can provide wide to narrow ratios of 2:1, 2.5:1 and 3:1 for the Code 39, Interleaved 2 of 5, Codabar and MSI symbologies. The ratio is changed by a parameter in the function of the font tool.
- UCC/EAN-128 Support - when using our universal fonts for UCC-128 or EAN-128 barcodes, every barcode must begin with a Start C character followed by a (fnc1) "function code one" character. Our IDAutomation_Uni_C128() function in our font tools provides an automated method for doing this by inserting an ASCII202 character for each AI represented. Additionally, when printed at 12 points our "IDAutomation Uni M" font is specifically designed for UCC/EAN 128 barcodes where a size of 1/2 inch tall and an X dimension of 10 mils is required. Read more about how to encode UCC/EAN in our Code 128 FAQ.
- Seven Different Heights Provided - the fonts are scaleable and should be printed at the correct font size to suit your application and scanning equipment. In addition to using the point size to set the font width, seven (7) versions of the fonts are provided to support different height requirements. The last characters in the barcode font name determines the height of the barcode with the shortest being IDAutomation Uni XXS and the tallest being IDAutomation Uni XXL.
- Human Readable Text - because of the unique encoding of the universal barcode font, it is recommended to print the data that is encoded directly below the barcode if it is needed. This can be easily accomplished by adding a text field and including the source data in that field.
- Industry Standards - the universal barcode font recreates barcodes that conform directly to international AIM and ISO standards.
- Low Resolution Printer Support - the universal barcode fonts are designed to print precisely on 203 DPI thermal printers and 300 DPI printers in addition to higher resolution printers. When printing at 203 DPI, the point size chosen should be a multiple of 6. When printing at 300 DPI, the point size chosen should be a multiple of 4.
- USPS Support - when printed at 16 points, the "IDAutomation Uni L" font will produce the exact dimensions for UCC/EAN Code 128 required by the USPS special services, which is a height of .75" and an X dimension of .013". For information about formatting USPS UCC/EAN128 barcodes with our products, refer to the USPS portion of the Code 128 FAQ.
- Canada Post Support - when printed at 21 points, the "IDAutomation Uni L" font will produce the dimensions required by the CANADA POST, which is a height of 1" and an X dimension of .017".
- Easy Function Encoding Capability - our font tools for Code 128 provide easy methods of encoding functions such as returns and tabs in barcodes.
- Embeddable Functionality - the fonts included with the Developer License allow embedding. Our fonts may be embedded into PDFs, Word documents and other files that support embedding so users that do not have the fonts installed can still print the barcode.
- Data Sheet & Implementation Examples - for more technical information about this font such as dimension specifications, please review our Universal Barcode Font Advantage ™ User Manual.
- Multiple Formats Provided - when you purchase a license for this font, you will receive all versions in a single ZIP file. The manual is supplied in a file named "ReadMe.html" in the ZIP file. The following fonts are included:
  - TrueType fonts are supplied in PC and Macintosh format. The TrueType TTF fonts are compatible with Macintosh OS X and all versions of Microsoft Windows, including Pocket PC. Macintosh formatted MTT TrueType fonts are compatible with Macintosh System 7.1 and above.
  - OpenType OTF fonts with PostScript outlines are provided. These are compatible with Windows®, Macintosh OS X and other systems supporting the OpenType format.
  - PostScript Type 1 fonts are supplied in binary, ASCII and Macintosh versions.
  - Also included in this package are PCL laserjet soft fonts in 8, 12, 16, 20 and 24 points.
  - You may also get more information on what font types are provided.
  - For the most up to date installation procedures for Macintosh, UNIX and other operating systems, please visit our Technical Support Site.

Font Tools and Encoders Currently Available

The Universal Barcode Font Advantage ™ requires the use of a font tool (encoder) to convert the data that is to be encoded in the barcode to a string of text that when combined with our universal bar code font, will create a correct barcode. example...

The INSTALL.EXE file provided in this package will automatically install the Native Windows DLL, Crystal Reports UFL, and a Visual Basic module* for use in Visual Basic 6 and Microsoft Office. Our ActiveX DLL font tool also supports the Universal Barcode Font and may be installed separately if needed. For operating systems that do not support any of our font tools, there are other options available:

1. Populate a database with the "text string to print" from an existing encoder and then access the database from the other operating system with the Universal Barcode Font.
2. Obtain the source code, and incorporate the encoder in your application directly. The source code may also be easily converted to other programming languages as required. If you convert the code into another language, please contact us first. If you can provide us a copy of the source with user instructions, we can provide a discount for your license in many cases.
3. Implement one of our barcode components instead of a font. We have components available for several operating systems and reporting packages including Java and Linux.
4. In the event that none of the above are options for your implementation, we may be able to create the font tool for you with the purchase of a Developer License. Please contact us to verify this before purchase.

* The Visual Basic module provided makes calls to the Native Windows DLL. A complete, native VBA module is only available with the purchase of a Developer License as described below.

### Encoder Source Code Availability

The source code is available in several languages. The source code to any one of the projects listed below may be provided for each Developer License purchased and a signed Source Code Agreement. If the Unlimited Developer License is purchased, all of the projects may be provided with a signed Source Code Agreement.

- ActiveX DLL for Windows project
- 4D source code for Code 128
- C++ .h file written in Visual C++
- Visual Basic Module compatible with Visual Basic 6 and Microsoft Office VBA

The API of the Native Windows DLL

The API of the Native Windows DLL should only be used by advanced programmers that have an understanding of how Windows DLLs work. For all other purposes, we suggest using the Font Tools. The Native Windows DLL cannot return a string value. This limitation requires that the return value be passed as a variable to the function by reference. That being said, there are a few differences between the Native Windows DLL and the functions listed. The differences are as follows:

- The function names all begin with IDAutomation_Universal_ instead of IDAutomation_Uni_ .
- Return value - the functions return 0 for success or a non-zero value if the function fails.
- Output - this is a string value that will be populated by the DLL with the encoded data.
- Output size - this is an integer value that 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 or 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

In a button click event, or any other procedure, the function can be called. The DLL function needs an input parameter that can be 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 barcode
> 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 also provided and is located in the Examples folder of the ZIP file. We recommend examining the example file to get familiar with how the Native Font DLL works.

Implementation Tutorials

Implementation of the IDAutomation Universal Barcode Font Advantage ™ is accomplished with our Font Tools. Please refer to the documentation in each of these packages for implementation. The only difference is that the functions in the font tools for the universal font are preceded with IDAutomation_Uni_.

Several examples are also provided and are located in the Examples folder of the ZIP file. We recommend modifying the example files to get familiar with how the Universal Font works.

Distributing files for an application

If you have purchased a Developer License, you may distribute the font files and applicable components with your application. In addition, if you have signed the Source Code Agreement, you may integrate the source code directly into your application, eliminating the need to distribute any DLLs.

NOTE: Redistribution of our fonts and components requires a Developer License.

Windows Font Tool Native COM File (We recommend using an advanced installation application to distribute files for Windows)
Purpose of File | File to Distribute | Notes
Font File | IDAutomation Uni ???.ttf | The TrueType font. You may also distribute any other font files in the package as necessary.
Font Tool DLL | IDAutomationNativeFontEncoder.dll | This is the encoder DLL that formats data to font. It can be found in the Windows/System32 directory after installation. Because it was created with C++, it is small and has no dependencies.
Crystal Reports UFL (We recommend using an advanced installation application to distribute files for Windows)
Purpose of File | File to Distribute | Notes
Font File | IDAutomation Uni ???.ttf | The TrueType font. You may also distribute any other font files in the package as necessary.
Crystal UFL | CRUFLidautomation.dll | This is the Crystal User Function Library that formats data to font. It can be found in the Windows/System32 directory after installation or placed in the Windows/Crystal directory. Because it was created with C++, it is small and has no dependencies.
Distribution using Source Code
Purpose of File | File to Distribute | Notes
Font File | IDAutomation Uni ???.ttf | The TrueType font. You may also distribute any other font files in the package as necessary. If you have signed the Source Code Agreement, you may integrate the source code directly into your application, eliminating the need to distribute any DLLs.

NOTE: Redistribution of our fonts and components requires a Developer license.

Specifications:

The X dimension (X is the width of the narrow bar) is listed below for various point sizes. Our universal bar code fonts have been specially designed to be able to produce dependable barcodes when printed at large and small point sizes. The font can be printed as small as 4 points if the scanner supports reading it. In our test lab, we have been able to dependably scan our Code 128 font with the following hardware:

- IDAutomation SC5 USB Barcode Scanner - scans dependably at 6 points and larger
- IDAutomation Pug 'n Play USB Wand - scans as small as 8 points

Point Size | Approximate X dimension (1 mil = .001")
48 | .157 CM | .040"
36 | .118 CM | .030"
24 | .078 CM | .020"
20 | .065 CM | .016"
16 | .052 CM | .013"
12 | .039 CM | .010"
8 | .026 CM | .007"
6 | .019 CM | .005"
* To print at a different X dimension, find the point size that has the X dimension closest to what you need and use this formula to find the point size you need to print the font at: 12 * (X dimension you want) / (X dimension at 12 points) = (point size converted to integer) For example, if you need an X dimension of 12 mils, you need to print it at 14 points because: 12 * 12 / 10 = 14

When using a printer with less than 600 DPI, you must print at the following point sizes to create accurate barcodes:

203 DPI Printer (thermal printer) | 300 DPI Printer
6, 12, 18, 24, 30, 36 | 4, 8, 12, 16, 20, 24, 28, 32, 36

Several versions are provided to support different width and height requirements. The last characters in the font name determines the height of the barcode with the shortest being "XXS" and the tallest being "XXL". Because each single font can be printed at various point sizes, there are several combinations of heights and widths that can be produced.

Font name of purchased version | Font name of eval version* | Font height @12 points* | Notes
IDAutomation Uni XXS | IDAutomation SUni XXS | .10" or .254 CM |
IDAutomation Uni XS | IDAutomation SUni XS | .20" or .508 CM | Includes Postnet at normal intensity
IDAutomation Uni S | IDAutomation SUni S | .35" or .889 CM | Includes Postnet narrow by 10%
IDAutomation Uni M | IDAutomation SUni M | .50" or 1.27 CM | Includes Postnet 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. Measurements for Human Readable fonts do not include the text below. 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 you need and use this formula to find the point size you need to print the font at to get that height: 12 * (height you want) / (height at 12 points) = (point size converted to integer) For example, if you are using IDAutomation Uni M and you want it to be about .75" tall, you need to print it at 18 points because: 12 * .75 / .5 = 18

Functions of the Universal Font Advantage

The following functions defined below all return data formatted to our universal barcode font and are available in many of our Font Tools. All the functions listed below are preceded with IDAutomation_Uni_. For all functions below, the data type returned is a string and the input type for DataToEncode is a string.

Function | Notes
C128(DataToEncode, ApplyTilde) | This is a "Code 128 Auto" function that will automatically encode any data from ASCII 1 to ASCII 127. It will automatically switch to character set C to encode numbers as necessary. To encode alpha-numeric UCC/EAN-128, ASCII 202 or character Ê 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 ("Ê8100712345Ê2112WH5678", TRUE) or IDAutomation_Uni_C128 ("Ê" & {Table1.DataField1} & "Ê" & {Table1.DataField2}, TRUE) More information about AIs and UCC/EAN-128 is located here. If ApplyTilde is set to True, the tilde will be processed. ApplyTilde is False by default in this function.
C128HR(DataToEncode, ApplyTilde) | If you are creating Code 128 barcodes which need the text formatted, you may use this function. It is generally only used to format the text for UCC/EAN barcodes according to our 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 instead of this one.
C128B(DataToEncode) | Formats output to Code-128, character set B. For most purposes, it is better to use the C128() function instead of this one.
C128C(DataToEncode) | This code128 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 instead of this one.
C39(DataToEncode, N_Dimension, IncludeCheckDigit) | Formats the output for barcoding in Code 3 of 9 with the 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 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 without check digits 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.
MSI(DataToEncode, N_Dimension, IncludeCheckDigit) | Formats output for barcoding in the MSI/Plessey symbology. A MOD 10 checksum will be calculated if IncludeCheckDigit is true.
Planet(DataToEncode, IncludeCheckDigit) | NOTE: Because this bar-code type has a specific height requirement, this function only works with the XS, S or M size of the Universal Font. XS is the normal version, S has the bars narrow by 10% and the M font has the bars narrow by 20%. DataToEncode is a single string of Zip, Zip + 4 or Zip + 4 + Delivery Point. A MOD 10 checksum will be calculated if IncludeCheckDigit is true.
Postnet(DataToEncode, IncludeCheckDigit) | NOTE: Because this bar-code type has a specific height requirement, this function only works with the XS, S or M size of the Universal Font. XS is the normal version, S has the bars narrow by 10% and the M font has the bars narrow by 20%. 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_C128 ("00000123455555555558" & "~m19" ) For more information, please visit the UCC/EAN FAQ.
MODU10(DataToEncode) | A 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.
UCC/EAN-128 Barcode Examples for encoding UCC/EAN-128 Barcodes:
USPS EAN128 | USPS special services labels such as delivery confirmation are used with our IDAutomation Uni L font at 16 points. The following formula will create USPS_EAN128 in Code 128 with the C128() function: IDAutomation_Uni_C128 ("Ê" & "912312214123442441134" & "~m19", TRUE ) Where the number of 912312214123442441134 may be replaced with your data field, for example: IDAutomation_Uni_C128 ("Ê" & {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 with the C128() function: IDAutomation_Uni_C128 ("Ê" & "013001234567890" & "~m13", TRUE ) For more information, refer to the UCC/EAN portion of our Code128 Barcode FAQ.
SSCC18 | The following formula will create SCC18 in Code 128 with the C128() function: IDAutomation_Uni_C128 ("Ê" & "0000801234999999999" & "~m17", TRUE ) For more information, refer to the UCC/EAN portion of our Code128 Barcode FAQ.

Description of the parts of the functions:

- DataToEncode - this is a string value that 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 - In Code 128 auto and UCC128, if the ApplyTilde option is set to True, the tilde will be processed and allow the following encoding options:
  - ASCII characters: the format ~ddd may be used to specify the ASCII code of the character to be encoded. For example, if you enter the following text in the Data field: 66~02977 you will actually be encoding 66GS77 where GS is a delimiter ASCII 29 character. Other commonly used ASCII codes are ~009 for a tab and ~013 which is a return function. For encoding other functions, please refer to our ASCII chart.
  - Encoding UCC/EAN-128: to encode alpha-numeric UCC/EAN128, the character must be set to "AUTO" for automatic. Then, ASCII 202 or character Ê is entered as the FNC1 before each AI and the required start C is included automatically. For example, the UCC number of (8100)712345(21)12WH5678 should be entered as: Ê8100712345Ê2112WH5678. In most cases, the AIs will be properly represented in the human readable text. If the parenthesis is not around the correct number for the AI, enter the following extended ASCII character as the FNC1 for the correct number of digits in your AI:
    ASCII 212 = 2 digits
    ASCII 213 = 3 digits
    ASCII 214 = 4 digits
    ASCII 215 = 5 digits
    ASCII 216 = 6 digits
    ASCII 217 = 7 digits
    For example, to encode (1277)56, enter Ö127756.
    For more information about this, please refer to the UCC/EAN 128 section of our Code 128 FAQ
  - Create a Mod 10 Check digit: to Create a Mod 10 check digit for xx number of characters add the following to the DataToEncode: ~mnn (where nn is a 2 digit number representing the number of characters preceding the tilde in which to base the Mod 10 calculation). The additional MOD 10 check digit is commonly used in UCC or EAN barcode types. For example, setting the DataToEncode property to Ê4021234567890123456~m16, will cause a mod 10 check digit to be created based on all 16 characters before the tilde. The human readable text and scanned data will display as (402)12345678901234566. The final 6 is the mod 10 check digit and replaces ~m16.
  - FNC2: When necessary, the FNC2 character may be inserted into the DataToEncode string by using ASCII 197. For example; Å8012349091. Our SC5USB Scanner can be programmed to hold the barcode starting with the FNC2 in memory and only transmit it to the computer after scanning a barcode containing the FNC1.

Troubleshooting Procedures

The following may be performed on a Windows PC to verify that the font is working properly.

1. Install the package on a Windows PC by running the Install.exe file.
2. After installation, reboot the PC to ensure the font will be recognized by your application.
3. Open the Excel example provided with the package. It is an icon located in Start - Programs - IDAutomation Universal Font Advantage - Excel Example.
4. Change the text in cell A11 from SC4341207504 to TEST. Be sure to enter the data in all UPPERCASE.
5. Change the font in cell B11 to the Arial font.
6. The text data in cell B11 should be exactly EBDEKACECEICEKAFADGIAH.
7. This text, when combined with our universal font, will create a correct barcode.
8. After the font in cell B11 is changed to the IDAutomation Uni XS font, a correct barcode will be created.

If the font works properly in Excel as mentioned above, then it is installed properly and the Windows DLL is formatting the data properly for the font. To troubleshoot the problem more, please refer to our Font Problems and Solutions site.

Report Software Piracy! If you have any knowledge of our products that are being used in violation of our license agreement, copyright laws or international treaties, please report it. You can remain anonymous.

Product Links: [Barcode Fonts | Barcode Components | Barcode Label Software | Barcode Scanners]

Copyright © 2000-2005 IDAutomation.com, Inc. IDAutomation and BizFonts are registered trademarks of IDAutomation.com, Inc. All other trademarks mentioned are the property of their respective owners.

Over 70% of Fortune 100 companies use our products to automate their businesses.