Section - 17 : Tips


This section provides information you made need to get the best results and to resolve any problems which may occur.

Producing Reliable Bar Codes

The most reliable bar codes are produced when you use one of Documaker's standard print drivers (AFP, Xerox Metacode, PCL, or PostScript) to produce a print stream that is sent directly to the appropriate printer. Bar codes scanned directly from these printouts are more reliable when scanned because...

  • Documaker completely controls the print stream produced

  • The printouts are of high resolution (240 or 300 dots per inch)

  • Most AFP, Xerox Metacode, PCL, or PostScript printers are very reliable and consistent

You lessen the reliability of scanned bar codes when you...

  • Produce bar codes in an alternate document format such as PDF, RTF, or HTML

  • Fax the bar code

Producing bar codes in PDF, RTF, or HTML format

When you produce bar codes in an alternate document format such as PDF, RTF, or HTML, you reduce the reliability of the bar codes being produced. Applications such as Internet Explorer, Microsoft Word, and Adobe Acrobat must first interpret and display the document format. The interpretation and display of the document will often vary depending upon the version of the software used. These applications rely on other applications, such as Windows print drivers, to print the document which includes the PDF417 bar codes. High reliability and consistency can be more difficult to achieve in this environment as there are many factors that affect the final printed results.

Faxing

Most fax machines scan and transmit documents at a far lower resolution than the original printed documents. High resolution is defined as 196 x 204 dpi and low resolution is defined as 96 x 104 dpi (dots per inch).

Improving readability

Here are some things you can do to improve the readability of PDF417 bar codes:

  • If possible, increase the Error Correction (ECC) Encoding when producing the PDF417 bar code.

  • If you must fax the document, fax at the highest possible resolution.

  • Make sure you do not have any fit to width options enabled on your Window's print or FAX driver. These options shrink output and that can distort the bar code.

  • Turn off any graphic smoothing features. Smoothing is used by some print or FAX drivers to make bitmaps look better. This can distort the bar code.

  • If your FAX driver will accept PCL or PostScript output, try sending PCL or PostScript output to eliminate the PDF step.

  • Use the option to print as a graphic image if the application or Windows print driver allows it. This approach is slower but may give you a more precise printout.

  • Experiment with various advanced print settings within the 3rd party application and test using different printers and Windows print drivers.

Turning on Tracing

To help you spot errors, you can turn on tracing. To turn on tracing for the PNYLIB and PSYLIB modules, set the INI options shown below. Setting one or both of these options to Yes tells the system to create a trace file named PDF417.LOG.

< Debug_Switches >

Enable_Debug_Options = Yes

PNYLIB = Yes

PSYLIB = Yes

Note: Omit these options or set them to No during normal operation. Tracing slows performance.

Error Messages

Here is a summary of the error messages you may encounter.

PNY01A

This table shows the error messages that might possibly be returned in the error return-code variable parameter passed to the PNY01A API that prepares the bar code data into the AAMVA-compliant format.

Error Description
0 Successful completion.
8 Error in creating the document signature. Check the KEY and PASS PHRASE parameters.

P4172FNT

This table shows the error messages that might possibly be returned in the error return-code variable parameter passed to the P4172FNT API that creates the font text for a bar code.

The errors that have descriptions denoted by **INTERNAL ERROR should ordinarily never be observed by an application invoking the Oracle API. These errors should be reported to Oracle Support. The other errors may result from incorrect usage, and the description notes where to begin to determine the cause of the error.

Error Symbolic name Description
0 ERR_NOERROR Successful completion.
-4 ERR_NULLDATASOURCE **INTERNAL ERROR. No input routine was specified.
-5 ERR_INVALIDINPUTOBJECT **INTERNAL ERROR. The PDF object is corrupt.
-7 ERR_TOOMANYCW **INTERNAL ERROR. Re-size of bar code cannot contain data.
-8 ERR_NOTINPUTDEVICE **INTERNAL ERROR. The PDF object was not input type.
-9 ERR_OUTPUTDEVICE **INTERNAL ERROR. Error initializing output object -- invalid type or memory allocation failure.
-10 ERR_NOFILTERSELECTED **INTERNAL ERROR. No output driver setup/installed.
-11 ERR_TOOMUCHDATA The input data length exceeds the bar code. The bar code size requested (via the rows and columns parameters) is not large enough to contain the input data. Check the form design and see if you can make the bar code area larger.
-12 ERR_NOACTIVEBARCODE **INTERNAL ERROR. Attempt to print/query without bar code.
-14 ERR_MPCBTOOMUCH ** INTERNAL ERROR. The bar code is too small for the MPDF information.
-16 ERR_TOOMANYMPDF **INTERNAL ERROR. There are too many bar codes for the MPDF information.
-17 ERR_ECCEXCEEDSCAPACITY The bar code is too small for the ECC specified. The bar code size requested (via the rows and columns parameters) might be large enough to contain the data, but is not large enough to represent the data given the error correction value you specified. Increase the size of the bar code or make sure the ECCLevel parameter is correct.
-20 ERR_MEMORYALLOC **INTERNAL ERROR. Failed to allocate a temporary buffer.
-21 ERR_ARGUMENT **INTERNAL ERROR. Invalid argument: not supplied, out of range, and so on. If this occurs, make sure the input parameters are valid.
-22 ERR_INVALIDECIESCAPE **INTERNAL ERROR. Ill-formed ECI escape sequence.
-23 ERR_C128CONTENT **INTERNAL ERROR. Invalid data in the code128 emulation input.
-24 ERR_INVALIDMACROCHAR **INTERNAL ERROR. Ill-formed macro character substitution sequence in input.
-99 ERR_FATALINTERNAL **INTERNAL ERROR. Internal API error.
-100 ERR_FONTFATALINTERNAL **INTERNAL ERROR. Internal conversion error.
-101 ERR_FONTOBJALLOC **INTERNAL ERROR. A failure occurred during internal buffer memory allocation.
-102 ERR_FONTROWCOL

Incorrect row/column combination. The ROW parameter can range from 3 to 90. The COLS parameter is converted into an internal code word using this formula:

CW=INT(((COLS*100)+425)/425)-5

The resultant internal code words can range from 1 to 30. This puts a practical range on the COLS parameter of from 22 to 145. The absolute limit to the size of a bar code is 928 internal code words. All input data and error correction information must be able to be represented by no more than 928 internal code words.

-103 ERR_FONTECC Incorrect ECC level. Check the ECCLevel parameter value. The valid range is zero (0) through eight (8).
-104 ERR_FONTOUTBUFFTOOSMALL The output buffer is too small. Check the parameter that defines the size of the output buffer. Make sure it is large enough to represent the size you need.

If you have multi-page sections, you may get one of these messages, depending on how you set the W parameter in the CreatePDF417Barcode rule.

If you have a multi-page section, you will not get a warning message when the system cannot locate the specified bar code or box if you set the Warning parameter of the CreatePDF417Barcode rule to No. Otherwise, you get the following warning message:

DM20402: Warning In CREATEPDF417BARCODE(): The system is unable to find the specified name for the barcode or box <P417BX1> for image <AAA> on page <2>.