Administering Fonts
If you have a laser printer, you might need to install and maintain
PostScript fonts. For many printers, the fonts are set up as part of
the printer installation process.
PostScript fonts are stored in outline form, either on the printer or on
a system that communicates with the printer. When a document is printed, the
PostScript interpreter generates each character as needed in the appropriate size from the
outline description of it. If a font required for a document is not
stored on the printer being used, the font must be transmitted to that
printer before the document can be printed. This transmission process is called downloading fonts.
Fonts are stored and accessed in several ways:
Printer-resident fonts are stored permanently on a printer. These fonts are installed in read-only memory (ROM) on the printer by the manufacturer. If the printer has a disk, you can install fonts on that disk. Most PostScript printers are shipped with 35 standard fonts.
A permanently downloaded font is transmitted to a printer with a PostScript exitserver program. A permanently downloaded font remains in printer memory until the printer is turned off. Memory allocated to a downloaded font reduces the memory available on the server for PostScript print requests. Use of an exitserver program requires the printer system password and can be reserved for the printer administrator. You should permanently download a font if most print requests serviced by the printer use that font.
Fonts that are used infrequently or for special purposes can be stored on a user's system. The user can specify these fonts when submitting the print request. The fonts are appended to the print request and transmitted to the printer. When the print request is processed, the space allocated for the font is freed for other print requests.
Host-resident fonts are stored on a system that is shared by many users. The system that stores the fonts can be a print server or a print client. Each user can request fonts in the document to be printed. This method is useful when numerous fonts are available, or when these fonts are not used by all print requests. If the fonts will be used only on printers attached to a print server, they should be stored on the print server. If the fonts will be used by the users on one system and those users can submit requests to multiple printers on a network, the fonts should be stored on the users' system.
The LP print service provides a special download filter to manage host-resident fonts. The LP print service also supplies troff width tables for the 35 standard PostScript fonts that reside on many PostScript printers. For more information about the troff program, see the troff(1) man page.
Managing Printer-Resident Fonts
Most PostScript printers come equipped with fonts that are resident in the printer
ROM. Some printers have a disk on which additional fonts are stored. When
a printer is installed, you should add the list of printer-resident fonts to
the font list for that printer. By identifying printer-resident fonts, you prevent fonts
from being transmitted unnecessarily across a network. Each printer has its own list
of resident fonts, which is contained in this file:
/etc/lp/printers/printer-name/residentfonts
When the printer is attached to a print server, ensure that the list
in the residentfonts file includes fonts that are on the print server. The
file must also include fonts that are available for downloading to the printer.
You must edit the files that contain the list of printer-resident fonts by
using a text editor such as vi.
Downloading Host-Resident Fonts
When a PostScript document contains a request for fonts not loaded on the
printer, the download filter manages this request. The download filter uses PostScript document
structuring conventions to determine which fonts to download.
LP print filters are either fast or slow. A fast filter quickly prepares a
file for printing. Also, a fast filter must have access to the printer
while the filter is processing. A slow filter takes longer to convert a file.
However, a slow filter does not need to access the printer while the
filter is processing. An example of a slow filter is a filter that
converts an ASCII document to a PostScript document.
The download filter is a fast filter. This filter downloads fonts automatically if the
fonts are on the print server. The download filter can also be
used to send fonts to a print server. To do so, you can
create a new filter table entry that calls the download filter as a
slow filter by using the lp -y command. Alternatively, you can force
selection of this filter by changing the input type.
The download filter performs five tasks:
The filter searches the PostScript document to determine which fonts are requested. These requests are documented with the following PostScript structuring comments: %%DocumentFonts: font1 font2 … in the header comments.
The download filter searches the list of printer-resident fonts to determine if the requested font must be downloaded.
If the font is not resident on the printer, the download filter searches the host-resident font directory table to determine if the requested font is available. This filter performs this search by getting the appropriate file name from the map.
If the font is available, the download filter takes the file for that font and appends it to the file to be printed.
The download filter sends the font definition file and the source file to the PostScript printer. The source file is the file to be printed.
Installing and Maintaining Host-Resident Fonts
Some fonts reside on the host system and are transmitted to the
printer as needed for particular print requests. As the administrator, you make PostScript fonts
available to all users on a system. To do so, you must
know how and where to install these fonts. Because fonts are requested by
name and stored in files, the LP print service keeps a map file. A
map file shows the correspondence between the names of fonts and the names
of the files that contain those fonts. Both the map file and the
font list must be updated when you install host-resident fonts.
The fonts available for use with PostScript printers are stored in directories that
you create. These directories are called /usr/share/lib/hostfontdir/typeface/font. The variable typeface is replaced by
a name, such as palatino or helvetica. The variable font is replaced by
a an attribute name, such as bold or italic.
How to Install Downloaded PostScript Fonts
- Log in as superuser, lp user, or assume an equivalent role on the
print server or print client.
- Change directory to the /etc/lp/printers/printer-name directory.
# cd /etc/lp/printers/printer-name
The variable printer-name specifies the name of the printer on which you want
to install downloaded PostScript fonts.
- Create the residentfonts file, if this file does not already exist.
# touch residentfonts
This file might not exist if you are adding permanently downloaded fonts for
the first time.
- Edit the residentfonts file. Add all the printer-resident fonts and the fonts to
be permanently downloaded.
How to Install Host-Resident PostScript Fonts
- Log in as superuser, lp, or assume an equivalent role on the print
server or print client.
- Create the hostfontdir directory.
# cd /usr/share/lib
- Change to the /usr/share/libdirectory.
# cd /usr/share/lib
- Create the hostfontdir directory, if this directory does not already exist.
# mkdir hostfontdir
- Change the permissions on the hostfontdir directory to 775.
# chmod 775 hostfontdir
- Create a directory for a new typeface, if the directory does not already
exist.
# mkdir typeface
- Copy the font file to the appropriate directory.
# cp filename /usr/share/lib/hostfontdir/typeface/font
- Add to the map file the name of the font and the name
of the file in which it resides.
- Change to the /usr/share/lib/hostfontdir directory.
- Edit the map file by using a text editor such as the vi
editor.
Add a one-line entry for each font that you want to add to
the file. Put the font name first, followed by a space, followed by
the name of the file where the font resides. For example:
Palatino-Bold /usr/share/lib/hostfontdir/palatino/bold
- Save the file.
When an example entry exists in the map file on the appropriate system,
users can apply the font (for example, Palatino Bold) to their print jobs.
When users submit a print request that contains this font, the LP print
service appends a copy of the /usr/share/lib/hostfontdir/palatino/bold file to that file before sending it
to the printer.
- If you are using the troff program, you must create new width tables
for this font in the standard troff font directory.