Strategies & Methods
While not totally inclusive, here are some ideas for diagnosis.
Divide and Conquer
In order to make sure you know where a problem really resides, try separating out the pieces.
Instead of your DB application invoking Proform, make it write its field data to a file. Then you
can examine the input, run Proform by hand from the command line. Save the output of Proform,
and look at it, either via a binary editor or PCL interpreter. (See Tools) Also try running with
the -x option and look at the debug log file.
Is the printer really getting what you are sending?
It is far too easy to garble the printer stream before it gets to the printer. In unix, make sure that
your template will print as you want it to without Proform being in the middle. You might have
to specify some options to lp to make it print raw, such as:
Under DOS or Windows, the normal print command is practically guaranteed to alter your binary
output in strange and useful ways. The only way I know of getting raw output is:
copy myfile lpt1: /b
Is the field really in the template file?
Some DTP software does strange things when printing fields. I have seen some packages which
decide to position each individual letter, so that [name] becomes pixel# [ pixel# n pixel# a pixel#...
Proform will never find such a field. You can probably see from the -x log if it doesn't find a field
reference, but you can use a binary editor on your template to figure it out for sure. (See Tools)
If Proform is inserting a file, or generating barcode pixels, the DTP software had no means of
expecting it to happen. So, you might have to force the DTP software to reset fonts afterwards.
For example, consider the form:
If your telephone number comes out hozed, you might want to force the DTP software to reset
the font to what you want before printing it, perhaps by setting it to something else, printing a
space, then setting it back to the desired font.
Beware the Reset
When including a file, make sure it doesn't have a Reset command in it. (Escape B, or 1B45 in
hex) That says, "yo printer, forget everything I told you, including any downloaded fonts." If you
have a Reset in a graphics include file, you can just zap it out to hex 00's. (See Tools)
Normally each word gets positioned separately when using proportional fonts. When using
Monospace fonts, your DTP software may not bother to position each word. If that happens, a
form with two or more fields on the same page will have output staggering left and right.
You can readily see if this is the case via a binary editor. (See Tools) You can usually force it to
reposition at the words you want by changing the font, then changing it back.
Proform is case sensitive
[name] is different from [NAME}