System Administration Guide: Advanced Administration

Managing Fonts

If you have a laser printer, you might need to install and maintain PostScript fonts. You might also have to decide where to install PostScript fonts and how to manage them. 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, it 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:

Managing Printer-Resident Fonts

Most PostScript printers come equipped with fonts 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 the file:


/etc/lp/printers/printer-name/residentfonts

When the printer is attached to a print server, make sure the list in the residentfonts file includes fonts that are on the print server and which are available for downloading to the printer.

You must edit the files containing 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, and it must have access to the printer while the filter is processing. A slow filter takes longer to convert a file, and it does not need to access the printer while the filter is processing. An example of a slow filter is ASCII to PostScript.

The download filter is a fast filter; it 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 this, 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:

  1. It 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.

  2. It searches the list of printer-resident fonts to determine if the requested font must be downloaded.

  3. If the font is not resident on the printer, the download filter searches the host-resident font directory (by getting the appropriate file name from the map table) to determine if the requested font is available.

  4. If the font is available, the filter takes the file for that font and appends it to the file to be printed.

  5. It sends the font definition file and the source file (the file to be printed) to the PostScript printer.

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 that shows the correspondence between the names of fonts and the names of the files containing those fonts. Both the map 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 you create called /usr/share/lib/hostfontdir/typeface/font, where typeface is replaced by a name like palatino or helvetica, and font is replaced by a name like bold or italic.

How to Install Downloaded PostScript Fonts

  1. Log in as superuser, lp, or assume an equivalent role on the print server or print client.

  2. Change directory to the /etc/lp/printers/printer-name directory.


    # cd /etc/lp/printers/printer-name
    

    printer-name

    Name of the printer on which you want to install downloaded PostScript fonts. 

  3. Create the residentfonts file, if it does not already exist.


    # touch residentfonts
    

    This file might not exist if this is the first time you are adding permanently downloaded fonts.

  4. Edit the residentfonts file and add all the printer-resident fonts and fonts to be permanently downloaded.

How to Install Host-Resident PostScript Fonts

  1. Log in as superuser, lp, or assume an equivalent role on the print server or print client.

  2. Create the hostfontdir directory, if it does not already exist.


    # cd /usr/share/lib
    # mkdir hostfontdir
    # chmod 775 hostfontdir
    
  3. Create a directory for a new typeface, if the directory does not already exist.


    # mkdir typeface
    
  4. Copy the font file to the appropriate directory.


    # cp filename /usr/share/lib/hostfontdir/typeface/font
    
  5. Add the name of the font and the name of the file in which it resides to the map table.

    1. Change to the /usr/share/lib/hostfontdir directory.

    2. Edit the map file using a text editor such as vi.

      Add a one-line entry for each font you want to add to the table, with 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
      
    3. Save the file.

      When an example entry exists in the map table on the appropriate system, users will be able to apply the font (for example, Palatino Bold) in their print jobs. When they submit a print request containing this font, the LP print service appends a copy of the file /usr/share/lib/hostfontdir/palatino/bold to that file before sending it to the printer.

  6. If you are using troff, you must create new width tables for this font in the standard troff font directory.