IDAutomation.com, Inc.
Your Source for Quality Symbology
[IDAutomation.com Home Page]

PDF417 Font and Encoder FAQ and Support Manual

NOTE: The EVALUATION VERSION of the PDF417 Barcode Font may ONLY be used for testing and evaluation purposes. The use of the evaluation version of the PDF417 Barcode Font for purposes other than testing and evaluation is strictly prohibited. In the evaluation version of this font, the word "DEMO" will be encoded in every barcode making larger symbols than normal and appearing when scanned.

After you purchase a license to the PDF417 Font, you will receive the fully functional font and encoder that can be printed and scanned without the words "DEMO" encoded in the symbol. Order NOW

You MUST use the encoder to format the data you want to print with the PDF417 barcode font.

- The "INSTALL_DEMO.exe" program should be installed on all Windows systems. It installs the PDF417 encoder application, Visual Basic example, MS Office macros, Crystal Reports UFL and an ActiveX DLL.

- The "AdditionalFonts.zip" file includes PostScript, BDF, FON, PCL and Macintosh fonts.

[BizFonts.com Home | Order NOW]

Contents:

- How to use the PDF417 Encoder Application for Windows

- How to use the COM DLL in Windows

- How to use the ActiveX Control in Windows

- Barcoding with the PDF417 Java Class Library

- Font Installation Procedures

FAQ - Frequently Asked Questions:

- What are the benefits of printing PDF417 as a font?

- Why can't I just select the font and type data to create the symbol?

- What files do I need to distribute with my application?

- Can I encode and scan extended characters such as © ® ë ö ?

- How do I encode tabs, returns, GS and RS functions between fields?

- Answers to other questions are in the PDF417 FAQ and Tutorial.

Support Issues and Specifications:

- Line spacing issues (too much space between each line)

- PCL font printing issues

- Using the Crystal Reports UFL

- X axis issues or left margin alignment issues

- PDF417 Encoder and font specifications

- The PDF417 ActiveX Control is also supplied with the font and encoder package. For the operation of this control, please refer to the PDF417 ActiveX Control & DLL Tutorial and User Manual or the ActiveX Control Support Site.

Subscribe to our FREE IDAutomation.com newsletter to receive updates on new products and symbologies available from us as well as industry news related to barcoding. We respect the privacy of our visitors.

PDF417 FAQ (Frequently Asked Questions)

#### If PDF417 is implemented as a font, why can't I just select the font and type data to create the symbol?

The implementation of PDF417 as a font consists of both the encoder and the font. The purpose of the encoder is to convert the data to be encoded into proper bar and space patterns formatted to our PDF417 barcode font. It is necessary to use the encoder because of the complexity of the symbology and the required Reed Solomon error correction.

#### What are the benefits of printing PDF417 as a font?

The benefits include high scalability with operating system, application and printer independence. These are best described in our Font Quality Statements.

Can I encode and scan extended characters such as © ® ë ö ?

The answer is yes! It is possible to scan and encode extended characters provided you do the following:

1. Encode the data using Binary or Byte Compaction. This option encodes ASCII 0 to 255 of the ASCII character set.
2. Scan the data via the serial interface option (data bits have to be 8N) on your scanner. Normally, keyboard wedges and USB scanners do not support extended characters above ASCII 128 and they only can scan characters that are actually on the keyboard. Contact your scanner vendor for more information on how to do this; you may have to modify some settings internal to your scanner.

Barcoding with the PDF417 Java class:

This section explains the main configuration parameters and methods of the PDF417 for Java encoder class.

- fontEncode() - the main method that formats and returns a string of data formatted to the PDF417 Font. See the example below for more info.
- code - this is the value to be encoded.
- PDFColumns - number of columns for PDF417 (the default is 5).
- PDFECLevel - error correction level for PDF417 (the default is 2).
- PDFMode - the PDF417 mode can be NUMERIC, TEXT or BINARY (the default is BINARY).
- PDFRows - the number of rows for PDF417 (optional).
- truncated - if set to "true", truncated symbols will be created according to the ISO specification.
- applyTilde - if set to "true", you can use the format ~ddd if you want to specify the ASCII code of the character to be encoded. Default is off. For example, if you enter the following text in the Data field: ~029AB you will actually be encoding GSAB Where GS is a delimiter ASCII 29 character. This can be used in a single string to encode GS and RS characters (GS = ASCII 29 and RS = ASCII 30). Other commonly used ASCII codes are ~009 for a tab and ~013 which is a return function. These are useful when encoding multiple fields in a single symbol. ASCII chart.

For detailed information on PDF417, please review the PDF417 FAQ.

#### How to format data to the barcode font using the Java class library.

Step1: Firstly, you must have to have a Java 1.1 or greater virtual machine installed on the computer that is to format the data. Copy everything in the "JavaClassRoot" directory to the root directory of your computer's class path. If you don't know what the root is or need assistance in this area, consult the Java documentation or the company you obtained the Java virtual machine from.

Step2: After the directories are copied to the class root, the method to format data to the font can then be called from a method in a Java application as in this example:

    import java.io.*;
    import IDautomationPDFE.*;
    class PDFTest
    {
        public static void main ( String [] args )
        {
            String dataToEncode = "This is a test of the IDAutomation.com PDF417 Java Encoder.";
    	PDF417Encoder pdfe=new PDF417Encoder();
    	System.out.println( pdfe.fontEncode(dataToEncode) );
        }
    }

The data string returned by the fontEncode method will create a proper PDF417 symbol when displayed or printed with the PDF417 font. To install the font on your operating system, consult your OS documentation or follow our font installation procedures.

Using the COM DLL:

Step1: Install the Font and Encoder for Windows. This is the INSTALL_PDF417.EXE file in the ZIP file. Upon execution, it installs TrueType fonts, implementation examples and registers the DLL. To register the DLL manually, perform the following: (1) copy the DLL to the \System directory; (2) Register the DLL by going to the command prompt, change to the \system directory, and type the following command: REGSVR32 "IDAutomationPDF417.dll".

Step2: After registering the DLL, you can reference it from within your application. Refer to your application's documentation to find out how to do this. In Microsoft Office Visual Basic and Visual Basic 6.0 you need to choose Tools - References or Project - References and select the "IDAutomation PDF417 Barcode". Then reference the class and function in your application as in the code below which is used in the Access, VB and Excel examples provided with the installation:

      'Create a Visual Basic function to call the DLL from within your application
    Public Function EncPDF(DataToEncode As String, EcLevel As Integer, TotalColumns As Integer, TotalRows As Integer, Truncated As Integer, PDFMode As Integer, ApplyTilde As Integer) As String
        Dim PDF417FontEncoder As PDF417Lib.PDF
        Set PDF417FontEncoder = New PDF
        PDF417FontEncoder.FontEncode DataToEncode, EcLevel, TotalColumns, TotalRows, Truncated, PDFMode, ApplyTilde, EncPDF
    End Function

      'Then, in your application, format the Output by calling the function, for example:
      'In Visual Basic code:
    Output = EncPDF(DataToEncode, "0", "0", "0", "0", "0", "0")
      'In an Excel formula, data pulled from cell A3:
    =EncPDF(A3,0,0,0,0,0,0)
      'In a Microsoft Access control source formula:
    =EncPDF([table.field],0,0,0,0,0,0)
      'Placing a tab function between fields in a Microsoft Access control source formula
      'to encode more data in a single PDF-417 symbol. Be sure to set ApplyTilde to "1" also.
    =EncPDF(([Test Data.TextData] & "~009" & [Test Data.NumberData]),0,0,0,0,0,1)

      'In Visual Basic you may also call the DLL directly, for example:
    Dim Output as String
    Dim PDF417FontEncoder As PDF417Lib.PDF
    Set PDF417FontEncoder = New PDF
    PDF417FontEncoder.FontEncode DataToEncode, 0, 0, 0, 0, 0, 0, Output
      'The "Output" string contains the returned code

A Visual Basic project example is included with the package. These files are placed in the destination directory upon installation.

The following API and barcode functions are available for the COM DLL:

FontEncode (DataToEncode As String, EcLevel As Integer, TotalColumns As Integer, TotalRows As Integer, Truncated As Integer, PDFMode As Integer, ApplyTilde As Integer) | The fields that use this function and PDF417 font must accept returns and multiple lines. Enter zeros for defaults in all integer fields, for example: PDF417("This is a test","0","0","0","0","0","0")

- TotalColumns - The number of data columns in the PDF417 barcode. The maximum is 30. Leave at 0 for an automatic setting. This will control the width of the bar code.
- EcLevel - The level of Reed Solomon error correction level placed in the symbol. More error correction creates a larger symbol that can withstand more damage. Leave at 0 for the automatic setting.
- PDFMode - Binary mode encodes bytes of data and text mode encodes all characters on the US keyboard plus returns and tabs. The default of 0 is binary mode; 1 is text mode which only encodes ASCII 9,10,13 and 32-127 but takes up less space. ASCII chart.
- TotalRows - We recommend leaving this setting at 0, the default. The minimum number of total rows can be set by this.
- Truncated - A truncated PDF417 symbol is more area efficient than normal PDF417. By selecting this option, the right hand side of the PDF417 is removed or truncated. This option should only be used in clean environments because zit is less immune to damage.
- ApplyTilde - if set to "true", you can use the format ~ddd if you want to specify the ASCII code of the character to be encoded. Default is off. For example, if you enter the following text in the Data field: ~029AB you will actually be encoding GSAB Where GS is a delimiter ASCII 29 character. This can be used in a single string to encode GS and RS characters (GS = ASCII 29 and RS = ASCII 30). Other commonly used ASCII codes are ~009 for a tab and ~013 which is a return function. These are useful when encoding multiple fields in a single symbol. ASCII chart.

### What files do I need to distribute with my application?

If you have purchased a Corporate Distribution License for the PDF417 Font and Encoder, you may distribute the font files and DLLs with your application. In addition, if you have signed the source code license agreement, you may integrate the source code directly into your application eliminating the need to distribute any DLLs. Remember to have your application register the DLLs after they are copied to the system folder.

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

Windows Encoder Files (We recommend using an advanced installation application to distribute files for Windows)
Purpose of File | File to Distribute | Notes
Font File | PDF417C_.TTF | The PDF417 TrueType font. You may also distribute any other font files in the package as necessary.
Encoder DLL | IDAutomationPDF417.dll | This is the encoder DLL that formats the PDF-417 font. It can be found in the system directory after installation. Because it was created with C++ ATL, it is small and has no dependencies.
Java Encoder Files for UNIX and Other Systems.
Purpose of File | Files to Distribute | Notes
Data Matrix Java Class Library | PDF417Encoder.class | These files must exist in the IDautomationPDFE directory from the class path because IDautomationPDFE is the package name.
Font File | <depends on OS> | Our PCL and PostScript fonts are commonly used on UNIX systems.
Crystal Reports UFL Encoder Files (We recommend using an advanced installation application to distribute files for Windows)
Purpose of File | File to Distribute | Notes
Font File | PDF417C_.TTF | The PDF417 TrueType font. You may also distribute any other font files in the package as necessary.
Encoder DLL | IDAutomationPDF417.dll | This is the encoder DLL that formats the PDF-417 font. It can be found in the system directory after installation. Because it was created with C++ ATL, it is small and has no dependencies.
VB Runtime DLL | msvbvm60.dll | This runtime file already exists on most PCs and it is required for the Crystal UFL. It can be found in the system directory after installation.
Crystal UFL | CRUFLIDAutomation.dll | The IDAutomation Crystal UFL. It can be found in the system directory after installation.

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

PDF417 Issues and Solutions

### Line Spacing Issues (too much space between each line)

Some implementations of PostScript fonts can cause a small space to appear between rows in the symbol. The only way to overcome this issue is to make sure your printing application is not adding additional line feeds or in the case of PCL fonts, change the vertical motion index as indicated below. This space will not cause problems with scanners and the barcode will still be readable.

When using 12 or 14 point PCL fonts, an adjustment to the vertical motion index is not usually necessary. However, if you are using other sizes, you may need to adjust it to close the gap between rows. To set the vertical motion index, issue the command before printing with the PDF417 font. The code for the vertical motion index Command is escape "<Ec>" + "&" + lowercase L "l" + Number Index + Capital "C". Use the chart below below to find the command for your font size. The number may be adjusted as necessary for your printer.

PCL Font Point Size | Vertical Motion Index Command to Use
10 | <Ec> &l6.5C
8 | <Ec> &l5.2C
6 | <Ec> &l3.9C

In the example above, the <Ec> represents the escape character for your software. In DOS Edit, Ec is represented by holding down the CTRL key and pressing the letter P, releasing both keys and then press the ESC key.

### X Axis Issues or Left Margin Alignment Issues

This issue may exist if you try to move the barcode to the right on the X axis using a programming language such as Visual Basic. When using the printer.currentX specification to set the X axis, only the first line of the barcode would print in the new position and the remaining lines would print at zero (all the way to the left). This is because the printer.currentX specification is reset every time a return is performed. A return must be performed to print the font on the new line

The best solution to this problem would be to find a command that could move the left margin so that returns will return the insertion point to the correct position. Since Visual Basic does not have a command like this a small piece of code must be written to set the currentX for each line.

Step 1. Declare and initialize a variable with the desired X position. Example: my_x = printer.currentX
Step 2. Replace the "Printer.Print OutputString" command with something similar to the following:

    For i = 1 To Len(Output)
       out1 = out1 & Mid(Output, i, 1)
          If Mid(Output, i, 1) = Chr(10) Then
             out1 = Replace(out1, Chr(10), "")
             out1 = Replace(out1, Chr(13), "")
             Printer.CurrentX = my_x
             Printer.Print out1
             out1 = ""
          End If
    Next i

Use With Crystal Reports

The Crystal Reports UFL is actually an ActiveX "Multi-Use" DLL and can be accessed by other ActiveX compatible applications. NOTE: Redistribution of our fonts and components requires a Corporate Distribution license.

This UFL is designed to work with Crystal Reports 6.0 and above; it was created to the Seagate UFL specifications. However, because of a Crystal Reports limitation that only allows up to 256 characters to be returned by a UFL, you can only encode limited information (up to about 40 ASCII characters or 30 binary characters) with the ECC level set to 1 and the number of columns set to 10. Up to about 50 ASCII characters can be encoded if the truncate option is chosen also. Hopefully, Seagate will fix this bug in the next release of Crystal Reports to allow larger PDF417 barcode symbols to be created. If the PDF417 symbol exceeds 10 columns or 3 rows, the barcode will be damaged because of the formula truncation.

After installing the PDF417 Font and Encoder for Windows, the barcode functions should show up under additional functions in the formula editor. When accessed, our UFL will return a text string that when combined with our PDF417 font, will produce a PDF417 barcode. The field where the PDF417 barcode is to be placed on the report must allow multiple lines because the UFL draws the barcode line by line. Refer to your Crystal Reports documentation for additional information on creating reports with UFLs.

Crystal Reports UFL: CRUFLidautomation.dll
Formula Syntax: IDAutomationFontEncoder("{Field1}",1,10,0,1,1,0 )
Formula Example: IDAutomationFontEncoder("{@date}+{ORDERS.ORDER_NUM}",1,10,0,1,1,0

Crystal Reports PDF417 UFL Specifics:

PDF417(DataToEncode As String, EcLevel As Integer, TotalColumns As Integer, TotalRows As Integer, Truncated As Integer, PDFMode As Integer, ApplyTilde As Integer) | The fields that use this function and PDF417 font must accept returns and multiple lines. Enter zeros for defaults in all integer fields.

PDF417 Font / Encoder Specifications:

Character Sets | GLI0 which encodes ASCII 0 to 255 of the ASCII character set.
Data Compaction Modes | Text Compaction with all four sub modes supporting text and numbers. Byte Compaction mode supporting numbers, text and binary data.
Reed Solomon Error Correction Levels | Selectable from 1 to 8

Font Point Size:

Approximate X dimensions for PDF417c

12 .048 cm .018"
10 .038 cm .015"
8 .032 cm .012"
6 .024 cm .009"
4 .016 cm .006"

Font Names | Description
PDF417c | This is the standard PDF417 font. It has a X to Y ratio of 1:3 which is recommended by national and international standards. Y dimension = 3X
PDF417c2 | This is a shorter version of the PDF417 font for high quality imagers and scanners. It has an X dimension of 1.5 times the X dimension of PDF417c. It has an X to Y ratio of 1:2. You may use this font to reduce the symbol height if you are using high quality scanners in a clean environment. Decrease the font size after switching to this ratio. Y dimension = 2X
PDF417c4 | This is a taller but thinner version of the PDF417 font for use with lower quality readers and special applications. It has an X dimension of .75 times the X dimension of PDF417c. It has a X to Y ratio of 1:4. This taller version also tends to work better with laser barcode scanners that can read PDF417. Increase the font size after switching to this ratio. Y dimension = 4X

Copyright © IDAutomation.com, Inc. 1999-2001. All trademarks mentioned are the property of their respective owners.