i18n_printing - Introduction to internationalized printing support
The operating system's optional subsets with worldwide support software provide special features to meet requirements for printing nonASCII text. These features include: Print filters for codesets other than ASCII. Among these are generic PostScript print filters (pcfof and wwpsof) that can be used with a variety of printers. Outline and bitmap fonts for different languages A font-faulting mechanism for downloading local language fonts to the DEClaser 1152, DEClaser 5100, and PrintServer 17 printers Software on-demand loading (SoftODL) of user-defined character fonts for Asian bitmap printers Codeset conversion between source file and printer
This reference page describes these features and how to enable them.
Unlike the print filters discussed in the following section, generic print filters are neither printer specific nor limited to DIGITAL printers.
The pcfof generic print filter operates on both text and PostScript input files and supports ANSI, PCL, and multilanguage PostScript printers. Fonts required for the print job must reside on the printer. See the pcfof(8) reference page for information about setting up a printer with this filter.
The wwpsof generic print filter operates on PostScript files generated from CDE applications or text files. The filter uses settings in a printer customization file (PCF) to find the font glyphs for local language characters and then embeds the font data in the PostScript file sent to the printer. The filter uses PostScript outline fonts, if installed on the local system, or bitmap fonts, which the filter obtains through a font server. This means that print jobs containing characters other than English do not have to be sent to printers where supporting fonts are resident. Furthermore, because this filter works as a font server client, local language bitmap fonts do not have to reside on the local system. The wwpsof filter verifies that the characters being printed are valid in the current locale and uses the locale setting to find appropriate fonts. Therefore, locale must be set appropriately for print jobs handled by this filter.
filter requires that the printer support
PostScript Level 2 (or higher) or PostScript Level 1 with the composite font
extension. See the
reference page for information about setting up a printer
with this filter. See
for information on setting up a font server.
The worldwide support software provides additional text and PostScript print filters for local language support. These filters are sensitive to the user's locale setting and include country-specific features, such as space compensation mode for Thai printing.
The following list names the print filters and the printers with which they are used. Note that text filters do not support PostScript output but PostScript filters can support both text and PostScript output. cp382dof, a text filter for the Traditional Chinese (Hanyu) CP832D printer dl1152wrof, a PostScript filter for the DEClaser 1152 printer dl5100wrof, a PostScript filter for the DEClaser 5100 printer dl510kof, a text filter for the Korean DL510 printer la280of, a text filter for the Japanese LA280 printer la380cbof, a text filter for the Simplified Chinese (Hanzi) LA380CB printer la380kof, a text filter for the Korean LA380K printer la380of, a text filter for the Japanese LA380 printer la84of, a text filter for the Japanese LA84 printer la86of, a text filter for the Japanese LA86 printer la88cof, a text filter for the Simplified Chinese (Hanzi) LA88C printer la88of, a text filter for the Japanese LA88 printer la90of, a text filter for the Japanese LA90 printer ln03jaof, a text filter for the Japanese LN03JA printer ln05jaof, a text filter for the Japanese LN05JA printer ln10jaof, a text filter for the Japanese LN10JA printer ln82rof, a PostScript filter supporting the DEC Kanji codeset for the LN82R printer ln82rof_sdeckanji, a PostScript filter supporting the Super DEC Kanji codeset for the LN82R printer ln82rof_SJIS, a PostScript filter supporting the Shift JIS codeset for the LN82R printer thailpof, a text (generic Thai bitmap) filter for the Epson 1050+ printer
The Chinese text print filters, which print either Hanzi or Hanyu characters, can automatically convert between the two sets of characters. Conversion is enabled when either the flocale value (set in the /etc/printcap file, lpr command, or lp command) or the user's locale setting differs from the printer locale value. See printcap(4) and lpr(1) for more information about setting these values.
A reference page exists for each print filter; however, reference pages for the ln82rof, ln82rof_sdeckanji, and ln82rof_SJIS filters are available only in Japanese.
The following table lists for printer-specific text filters the characteristics that can or must be defined in the /etc/printcap file. An asterisk precedes keywords (defined through the ya symbol) or other symbols that are mandatory for the filter. Symbols are described in the printcap(4) reference page. The keywords for the ya symbol are described in the lpr(1) reference page.
|Text Filter||Option Keywords for ya Symbol||Other Symbols|
The following table lists characteristics for generic PostScript print filters that can or must be defined in the /etc/printcap file. An asterisk precedes keywords (defined through the ya symbol) and other symbols that are mandatory for the filter across all locales. The note following the table discusses requirements that are locale specific.
|PostScript Filter||Option keywords for ya Symbol||Other Symbols|
The spcom and tm keywords are valid only when the plocale value is th_TH.TACTIS (Thai).
The yd symbol is mandatory for printing in Chinese and optional for printing in other languages.
For Chinese, PostScript print filters support codeset conversion as described for text print filters. However, codeset conversion is supported only for printing text files and not for printing PostScript files.
filters, you must set up separate entries (print queues) in the
file for as many codesets as the printer must support.
Setting up different print queues means defining multiple entries in the
file for the same printer. These entries have the
same print filter name but different
values. Remember that even though the
value is entered as a complete locale name, fonts differ according to codeset.
Therefore, a queue whose printer locale value is specific to a particular
language and territory can handle other locales that share the same codeset.
For example, a print queue whose entry includes
can handle not only Polish, but also Czech, Hungarian, Slovak,
The worldwide support software provides a large set of outline fonts for printing files in various languages. Depending on how many local language support subsets are installed on your system, there may be more than 150 outline fonts available.
Fonts are available according to codeset. To identify which fonts are available for the codeset of the file you want to print, see the section on fonts in the reference page for that codeset. For example, to find out which outline fonts are available for DEC Hanyu, refer to the section on fonts in dechanyu(5).
Note that Tru64 UNIX does not include PostScript outline fonts for
the ISO8859-4 (Lithuanian) and Japanese codesets.
Font faulting is a mechanism that allows certain generic PostScript printers to handle the large memory required by fonts for some codesets, particularly multibyte codesets for Asian languages. Using this mechanism, font information is stored on the secondary storage of either: 1) a supporting host machine called a font-faulting server or 2) an internal font disk. The font information is loaded into the printer only on demand, thus conserving printer memory.
Font faulting is often essential for multibyte ideographic fonts because the memory required to store a single font can exceed the memory capacity of many printers. Specialized local language printers, such as Japanese printers, do not require font faulting because the local language fonts are printer resident. However, other printers require a mechanism to load these fonts as needed for different parts of the same print job.
The font-faulting mechanism is also very useful for a desktop printing environment, in which a large number of different single-byte fonts may be required. In this case, simultaneously storing all the fonts in memory reduces the available memory, and therefore speed, of the printer. It is also possible that the number of required fonts are so large that it is impossible for all of them to be in memory at the same time.
Font faulting for multibyte fonts is done on a per character (or per glyph) basis because these fonts support extremely large numbers of characters. Font faulting for single-byte fonts is done on a per font basis. Single-byte fonts are small and relatively simple, so loading the whole font is more efficient.
The font-faulting mechanism can be used with the following printers: DEClaser 1152 DEClaser 5100 (LN09X-HD) PrintServer 17
The following sections discuss how font faulting works with each of
Font faulting requires 4M bytes of printer memory. If your DEClaser 1152 has only 2M bytes of memory, you must install the LN07X-UF memory board to provide the additional 2M bytes of memory. Refer to the printer manual for installing the LN07X-UF memory board.
You also need to establish one and only one system to be the font-faulting server for the printer. This server sends font information to the printer through a secondary communication interface, or channel. The printer's secondary channel connection to the font-faulting server can be made through either a local port or a Local Area Transport (LAT) port. If the connection is through a LAT port, make sure that no other applications or hosts are using that port.
An 8 pin Din to 6 Pos MMJ Adapter (part number: -H8584-AB) is needed to convert the Apple-talk interface on the printer to be the secondary channel used by the font-faulting mechanism. The baud rate of the secondary interface should match the value of $BAUD in /sbin/init.d/ffserver. By default, this value is 9600. Refer to ffd(8) for information on setting the baud rate for the secondary channel.
In the /etc/printcap file on the font-faulting server, the port connected to the secondary channel must be defined as the yd symbol value in the printer queue entry. If you are adding this entry by running lprsetup, select dl1152w as the printer type and answer y to the following question:
Do you want to configure this machine as font faulting server for the DEClaser 1152 printer? One and only one font faulting server should be configured for every DEClaser 1152 employing font faulting mechanism. [n]
Then, when the script prompts you to enter the yd value, enter the full pathname for the port.
If you are modifying an existing entry for the printer queue, you can also add the yd value by using lprsetup.
Refer to printcap(4) and lprsetup(8) for more information on the yd entry. For details on the internationalized print filter for the DEClaser 1152 printer, refer to the ADDITIONAL PRINT FILTERS section and dl1152wrof(8).
After the server and printer are connected and printer queue defined, enter the following commands to notify the font-faulting daemon about the new printer:
% /sbin/init.d/ffserver stop % /sbin/init.d/ffserver start
You need to enter these commands only after adding or modifying the printer queue. The next time the server is rebooted, the font-faulting daemon can locate the printer automatically.
Within the same local area network (LAN), only one system can be used as a font-faulting server.
If the port defined for the yd symbol is later connected to other devices, remember to delete the corresponding yd entry in /etc/printcap. Otherwise, all communication for these devices will be captured by the font-faulting daemon.
The last printer configuration step is to use the pfsetup command to download the fonts. For greatest efficiency, download all multibyte fonts if you are using them, plus the most frequently used single-byte fonts. The printer has access to the fonts that are not manually downloaded, but there is overhead for dynamically downloading fonts. For more information about downloading fonts, refer to pfsetup(8).
Printing non-ASCII files on a PostScript printer requires a
keyword value appropriate for the codeset used by the printer.
The printer codeset is derived from the locale assigned to the
keyword value can be specified
in one of the following ways:
printer queue entry,
specify the font as the
option for the
symbol. This definition establishes the font as the printer default.
Specify the font as the parameter to the
flag of the
flag overrides the font specified in the
for details on the
The only model of the DEClaser 5100 printer that supports the font-faulting mechanism is the LN90X-HD, which includes the 128 MB hard disk option. The printer also must have at least 6M bytes of memory. There are no other special hardware requirements.
You can configure the printer using the lprsetup command. When prompted for the print filter, select dl5100w. See the ADDITIONAL PRINT FILTERS section and dl5100wrof(8) for more information on setting up the DEClaser 5100 printer.
After using lprsetup to configure the printer, you then use the pfsetup command to download to disk the fonts that the printer will use. Download all the fonts that you expect the printer to need, because any fonts not manually downloaded are not accessible to the printer. Downloading is done only once, until the font is removed or the hard disk is reformatted. Refer to pfsetup(8) for details on downloading fonts.
After the fonts are downloaded to disk, they are automatically loaded into memory by the printer when required. No further user intervention is required.
To print non-ASCII files, you must specify a font value appropriate
for the codeset used by the printer. See the DEClaser 1152 section for your
options in specifying the printer font.
The PrintServer 17 product requires Version 5.0 or higher versions of PrintServer software. You must install both the printer and the PrintServer software before following the instructions on this reference page. Refer to the installation and management guides for PrintServer software for PrintServer 17 installation and configuration instructions.
After configuring the printer, you can use the pfsetup command to download fonts to the printer. Download all the multibyte fonts and the most frequently used single-byte fonts for greatest printer efficiency. The printer can access the fonts that are not manually downloaded, but this access slows printer operation. Refer to pfsetup(8) for more details on selecting and loading fonts to the printer disk.
To print non-ASCII files, you must specify a font value appropriate for the codeset used by the printer. See the DEClaser 1152 section for your options in specifying the printer font.
When sending local language print jobs to the PrintServer 17 printer,
you should use the
command rather than
lpr. See the
page for more information.
SoftODL is a mechanism through which a terminal or a printer can download the relevant bitmap font information for a user-defined character (UDC) at the time the character needs to be displayed or printed. The DIGITAL local language bitmap printers for multibyte languages (specifically for Japanese, Chinese, and Korean) can support this feature. See odl(5) for more details on the SoftODL mechanism.
The following list names, by language, the print filters and printers that support the SoftODL mechanism: Chinese: For the CP382D Traditional Chinese dot-matrix printer controller For the LA88-C Simplified Chinese dot-matrix printer For the LA380-CB Simplified Chinese graphic line printer Japanese: For the LA84-J dot-matrix printer For the LA86-J dot-matrix printer For the LA88-J dot-matrix printer For the LA90-J dot-matrix printer For the LA280-J dot-matrix printer For the LA380-J graphic line printer For the LN03S-JA laser printer For the DEClaser 2300 laser printer For the DEClaser 2400 laser printer Korean: For the LA380K graphic line printer
To enable SoftODL printing in these printers, the system manager can define the ys symbol in the /etc/printcap file. The value 256 is a safe value for all the printers; however, printer-specific values are found in the reference pages for the print filters.
The system manager can also set the default SoftODL database, font style,
and font size by defining the
options for the
Users can override these defaults specifying these options as arguments to
flag of the
for more information on setting these options.
For languages such as Japanese, Korean and Chinese, which require multibyte codesets, there is sometimes more than one codeset in common use for the language. The encoding scheme used by a local language printer cannot match all the codesets in use for a particular language. The worldwide support software includes a codeset conversion mechanism to print text files that have a different encoding scheme from the one used by the printer. Refer to i18n_intro(5) for an explanation of codesets, and iconv_intro(5) for introductory information on codeset conversion.
For printer-specific filters, codeset conversion can be enabled in the /etc/printcap file or by using the lpr command. In the /etc/printcap file, the plocale and flocale options are defined for the ya symbol to specify the codeset conversion used by default. The plocale option defines the locale (and indirectly, the codeset) of the printer, and the flocale option defines the locale (and indirectly, the codeset) of the text file. When using the lpr command, which overrides any settings defined in the /etc/printcap file, the same options are specified as arguments to the -A flag. See printcap(4) for more information on defining the ya symbol, and lpr(1) for information on using the -A flag.
If the flocale option is not specified by the user, files to be printed are assumed to use the same codeset as the one for the user's current locale. If the plocale option is not specified to indicate the locale of the printer, the locale is assumed to be POSIX. If codeset conversion is not possible given the current combination of file and printer locale, the file is printed as is.
To print files using multibyte fonts that are built into the printer, the plocale value must match the codeset of the builtin fonts. If fonts are downloaded at print time through the font-faulting mechanism, the plocale value should match the font that is downloaded for the print job.
The following list specifies by language the print filter codeset and plocale value for printers with builtin fonts: Chinese printer codesets and plocale values DEC Hanyu codeset (zh_TW.dechanyu locale) DEC Hanzi codeset (zh_CN.dechanzi locale) Japanese printer codesets and plocale values DEC Kanji codeset (ja_JP.deckanji locale) DEC Kanji codeset (ja_JP.deckanji locale) DEC Kanji codeset (ja_JP.deckanji locale) DEC Kanji codeset (ja_JP.deckanji locale) Super DEC Kanji codeset (ja_JP.sdeckanji locale) Shift JIS codeset (ja_JP.SJIS locale) Korean printer codeset and plocale values DEC Korean codeset (ko_KR.deckorean locale)
The following list specifies by language the codeset and associated plocale values for printers when fonts are downloaded at print time: Chinese font codeset and plocale values DEC Hanyu codeset (zh_TW.dechanyu locale) DEC Hanyu codeset (zh_TW.dechanyu locale) DEC Hanzi codeset (zh_CN.dechanzi locale) DEC Hanzi codeset (zh_CN.dechanzi locale) Korean font codeset and plocale value DEC Korean codeset (ko_KR.deckorean locale)
filter also does codeset conversion, if
necessary. For example, the filter converts characters in Unicode format to
characters in codesets for which fonts are available on the system. However,
requires only the locale setting for the print job to do
this type of codeset conversion. The filter does not require information about
which codeset the printer supports.
Commands: lpr(1), ffd(8), lprsetup(8), pfsetup(8), wwpsof(8)
Others: i18n_intro(5), iconv_intro(5), l10n_intro(5), odl(5)
Writing Software for the International Market