PDF417 Encoder Technical and Support Information

Supported Platforms

Platform Supported Languages Available Media
OS/390, z/OS COBOL II, C XMT files (via CD-ROM, E-Mail)
OS/400 COBOL, C, RPG, PL/I Save files (via CD-ROM, E-Mail)


  1. OS/390 and z/OS support requires C runtime libraries or LE/370
  2. Supported Unix platforms include:
    • AIX
    • HP-UX
    • Linux

    Other Unix platforms available by special arrangement.


(Click a link to view the PDF document in your browser – right click it to download)

Invocation Examples

AS-400 Examples

MVS, OS-390, z/OS Examples

Frequently-Asked Questions


  1. How does generating and printing PDF417 symbols differ from other barcodes?

    Unlike many one-dimensional barcodes (like Code 128 or Code 39), PDF417 symbols cannot be printed by simply using a special font. While we do provide a custom font for printing a PDF417 symbol, this is done to simplify the task of printing the symbol. The majority of the work is performed by the encoder, a callable library routine. The encoder is a sophisticated piece of software that performs all of the necessary formatting, data compaction, and error correction that goes into a PDF417 symbol.

  2. In general, how does the PDF417 encoder work?

    The PDF417 product consists of two components; a callable library routine, and a special PDF417 font. Your application program must call this library routine with the data you wish to “encode” in the PDF417 symbol. The library routine returns a buffer of characters. Your application program then sends these characters to the printer, using the PDF417 font. The complexity of this final step depends on your printing environment.

MVS, OS/390 & z/OS

  1. What’s the minimum version of MVS supported?

    The encoder has been tested as far back as MVS 5.2.2. The encoder may work on earlier version; however, we do not have the facilities for testing these versions. The C runtime libraries must also be present (e.g., as part of LE/370) and must be compiled in AMODE=31 (the default). Your calling program must also be running above the line to call the encoder directly.

  2. What’s the minimum version of OS/390 or z/OS supported?

    The encoder is currently support by all versions of OS/390 and z/OS. The C runtime libraries must have been installed and compiled in AMODE=31 (the default). Your calling program must also be running above the line to call the encoder directly.

  3. What programming languages are supported?

    The PDF417 encoder is distributed as an application callable load library (written in C). COBOL II and C are directly supported. Other languages like RPG and PL/I, while not documented, should work with the encoder. Sample programs written in a variety of languages are provided.

  4. How is the PDF417 encoder linked with my application?

    Our PDF417 routine is shipped as a load library and can be linked either statically or dynamically with your application. When the library is first installed on your system it must be linked with your C runtime libraries. JCL for this step is provided.


  1. What’s the minimum version of OS/400 supported?

    The minimum version is V4R1M0.

  2. Are Original Programming Model languages (COBOL/400, RPG/400) supported?

    Yes. The PDF417 encoder is distributed as an ILE service program. However, special ILE interface programs have been provided for OPM and EPM environments that invoke the service program for the calling program. Sample COBOL/400 and RPG/400 programs are supplied which demonstrate the calling convention.

  3. Are Integrated Language Environment (ILE) languages (ILE COBOL, ILE RPG) supported?

    Yes. The PDF417 encoder is distributed as an ILE service program. The CRTPGM command is used to link the service program with your ILE modules. Sample ILE COBOL and RPG programs are supplied which demonstrate the calling convention.

  4. How do I print the PDF417 symbol from an AS/400?

    The PDF417 encoder returns a rectangular array of characters which need
    to be printed using our special PDF417 font. Furthermore, these lines must be
    printed using a line spacing that depends on the module size you choose for your
    output symbol. The simplest way on an AS/400 to print is using a DDS to an AFP
    capable printer. The DDS for the PDF417 record may look something like this:

    A                                     CDEFNT(X0PD3309)
    A           PDFOUT01      37A         POSITION(1.700  1.350)
    A           PDFOUT02      37A         POSITION(1.730  1.350)
    A           PDFOUT03      37A         POSITION(1.760  1.350)
    A           PDFOUT04      37A         POSITION(1.790  1.350)
    A           PDFOUT05      37A         POSITION(1.820  1.350)
    A           PDFOUT06      37A         POSITION(1.850  1.350)
    A           PDFOUT07      37A         POSITION(1.880  1.350)
    A           PDFOUT08      37A         POSITION(1.910  1.350)
    A           PDFOUT09      37A         POSITION(1.940  1.350)
    A           PDFOUT10      37A         POSITION(1.970  1.350)
    A           PDFOUT11      37A         POSITION(2.000  1.350)
    A           PDFOUT12      37A         POSITION(2.030  1.350)
    A           PDFOUT13      37A         POSITION(2.060  1.350)
    A           PDFOUT14      37A         POSITION(2.090  1.350)
    A           PDFOUT15      37A         POSITION(2.120  1.350)
    A           PDFOUT16      37A         POSITION(2.150  1.350)
    A           PDFOUT17      37A         POSITION(2.180  1.350)
    A           PDFOUT18      37A         POSITION(2.210  1.350)
    A           PDFOUT19      37A         POSITION(2.240  1.350)
    A           PDFOUT20      37A         POSITION(2.270  1.350)
    A           PDFOUT21      37A         POSITION(2.300  1.350)
    A           PDFOUT22      37A         POSITION(2.330  1.350)
    A           PDFOUT23      37A         POSITION(2.360  1.350)
    A           PDFOUT24      37A         POSITION(2.390  1.350)
    A           PDFOUT25      37A         POSITION(2.420  1.350)

    Sample COBOL, C, and RPG programs are all provided for the AS/400.


  1. How is a PDF417 symbol printed?

    Normally, the PDF417 encoder uses font rendering to print the PDF417 symbol. The actual “output” of the encoder library is simply a series of characters (the space character and letters in the range ‘A’-‘O’). The exact layout of the output depends on the space you have available to print the symbol and its aspect ratio. When printed using the provided PDF417 font, the correct symbol is “rendered” by the printer.

    For example, the output of the encoder may look like the group of characters shown below. When rendered in the provided font, the result is the PDF417 symbol image shown to the right.

    PDF417 image

  2. Which AFP/IPDS printers are supported?

    All AFP capable IPDS printers are supported (both 240 and 300/600/1200 DPI). It is important to note though that your operating environment must have AFP support installed and operational (specifically, our software requires a PSF host).

    3800 series printers are supported only if they are operating in page mode and AFP is present on the system.

  3. Which Xerox printers are supported?

    We have the ability to generate fonts for most Xerox printers. In particular, 9700-series and 5-word fonts are provided. While we can generate fonts for other printer series (e.g., 2700 and 3700) we do not have the ability to test these, nor can we necessarily deliver these fonts on the appropriate media. Call us for individual evaluation of your printer environment.

  4. Which PCL printers are supported?

    We provide soft fonts for HP PCL printers. These fonts will work on virtually any HP compatible laser printer. Furthermore, we provide some basic documentation on downloading and printing with soft fonts. However, this documentation does not address generating PCL on all possible platforms (e.g., MVS and OS/400).