7.2 Creating a Character-Translation Table

A character-translation table maps characters from a printer's character
set to the Windows ANSI character set using the printer's device font
character set. All printer drivers for Windows should support the Windows
ANSI character set. If a font uses the translation table identified in the
printer's Model Data dialog box, the value in this control should be 0. If
the font requires a predefined CTT which is provided by the Universal
Printer Driver, this value should be that CTT's ID multiplied by -1; if the
font requires a minidriver-defined CTT, this value should be a positive
integer.

There are two predefined character-translation tables that are furnished by
the Universal Printer Driver. The tables and corresponding code page are
outlined in the following list.

CTT ID   CTT (Code Page)
---------------------------------------------------------------------------

-1       IBM Code Page 437

-2       IBM Code Page 850

-3       IBM Code Page 863

Windows uses a modified ANSI character set to identify printable
characters. The current version of this set contains 256 entries. For more
information about the Microsoft Windows ANSI character set, see the
Microsoft Windows Device Driver Adaptation Guide.

Some printers, like most dot-matrix printers, will use the same extended
characters for all device fonts. For this type of printer, a minidriver may
either specify a character-translation table through the ModelData dialog
box and set the Trans Tab value in the PFM dialog box in each PFM file to
0, or may set all of the Trans Tab values in each PFM file to the
appropriate ID value.

Other printers, like the HP LaserJet IIP, use a different set of extended
characters for each font. For this type of printer, a minidriver should set
each of the Trans Tab values in every PFM file to the ID value appropriate
for that font.

Once it has been determined which extended character set (or sets) is used
for some or all of the device fonts, character-translation tables must be
provided to map the device's extended characters to the Windows ANSI set.

If the font uses extended characters that match either code page 437 or
850, a minidriver may use one of the predefined character-translation
tables provided by the Universal Printer Driver. Simply enter the CTT ID
from the table in the Trans Tab control.

If the font does not use extended characters at all (either does not print
them at all, or the characters are italicized versions of the characters
below ASCII 127), a character-translation table is not needed. For these
printers, the Last Char in the PFM dialog box should be set to 127 (or
whatever the last printing ASCII value is), and the character described by
the Default character in the PFM file will be used whenever an extended
character is requested.

If the font uses some other combination of extended characters, it will be
necessary for the minidriver to provide its own character-translation table
to perform the remapping. Using the CTT dialog box, you can specify which
character codes map to which printer symbols. The following illustration
shows the CTT dialog box with ECMA94.CTT from the HP LaserJet IIP driver:

bitmap:  ctt