Apple IIgs #67
LaserWriter Font Mapping

Revised by Matt Deatherage (May 1992)
Written by Suki Lee & Jim Luther (September 1989)

This Technical Note discusses the methods used by the Apple IIgs Print Manager to map IIgs fonts to the PostScript(R) fonts available with an Apple LaserWriter printer.

Changes since November 1989: Corrected some typographical errors and added Carta and Sonata, two fonts the LaserWriter driver knows about but aren't built into any LaserWriter.


Version 2.2 and earlier of the Apple IIgs LaserWriter driver depend solely upon font family numbers as unique font identifiers. There is a table built into the driver which maps the known font family numbers to the built-in LaserWriter family fonts. Any fonts which are not built-in are created in the printer from its bitmap font strike. Under this implementation, all font family numbers not known at the time the driver was written print using bitmap fonts. This driver knows nothing of any other fonts which may reside in the printer.

There have been many requests for the driver to take advantage of other available PostScript fonts to get high quality output from the LaserWriter. PostScript fonts from Adobe's font library, or from other PostScript font manufacturers, can be downloaded to the printer from a Macintosh and remain in the printer for use until power off. Currently there is no means to download a PostScript font with an Apple IIgs.

The Apple IIgs LaserWriter driver version 3.0 and later makes use of most resident PostScript fonts in the LaserWriter when requested. If the font is not available, then the bitmap font is used. The driver queries the printer at the start of a job for the font directory listing. The listing consists of names of all the fonts in the printer, built-in or downloaded. This information is kept locally for look up using the name of the requested font.

Issues

All Apple IIgs fonts contain a family name and a family number. The Apple IIgs currently identifies fonts using the family number; however, this identification method may change in the future, due to the complexity of tracking unique matches between font family names and font family numbers.

PostScript identifies its fonts by name (case sensitive) and knows nothing of any font family numbering system, Macintosh or Apple IIgs, which might be attached to a particular font. Most PostScript font families include plain, bold, italic and bold italic fonts. Some fonts families may also have serif and sans serif fonts or fonts of different weights (line thickness). These fonts are generally named by adding a style suffix to the base family name. Unfortunately, there is no uniform method for naming fonts, since most fonts were named by their designers and many of the names have historical significance.

The three examples shown in Table 1 show three variations of the plain font, two variations of the bold style, three variations of the italic style, and three variations of the bold italic style. There are others such as ZapfChancery-MediumItalic, Korinna-KursivRegular, and LetterGothic-Slanted which all denote the italic style of the respective font family.


Style          Font names
-----------------------------------------------------------------------------
plain          Helvetica             Times-Roman       AvantGarde-Book
bold           Helvetica-Bold        Times-Bold        AvantGarde-Demi
italic         Helvetica-Oblique     Times-Italic      AvantGarde-BookOblique
bold italic    Helvetica-BoldOblique Times-BoldItalic  AvantGarde-DemiOblique
-----------------------------------------------------------------------------
                         Table 1 - Example Font Names

The Macintosh LaserWriter driver uses a mapping scheme to compose a full PostScript font name. It relies on the Font Family Definition Record 'FOND' resource to provide a style mapping table containing the appropriate suffixes.

There are no similar resources on the Apple IIgs, which means the Apple IIgs LaserWriter driver has no way to match PostScript fonts to Apple IIgs fonts. Instead, the Apple IIgs LaserWriter driver adopts the following approach. The driver has full knowledge of all LaserWriter family built-in fonts (see Table 2 for a list of these built-in fonts) plus Carta and Sonata (two graphical fonts used in map and music programs) and uses the correct name for all style variations of the fonts. For all other fonts, the driver uses a standard set of suffixes for the style modifications. These suffixes are -Bold, -Italic, and -BoldItalic. The appropriate suffix is appended to the family name of the font, and this name is used to search the font directory table obtained from querying the printer. If a match is found, the document is printed using the corresponding PostScript font. If no match is found, then the driver tries to find the plain form of the font and creates the style modification in PostScript. A bitmap of the font is downloaded to the printer if these two searches fail.

If you are shipping your application with the intention of taking advantage of PostScript fonts when printing to a LaserWriter, please be sure to provide an Apple IIgs font whose family name is identical to the PostScript font family name.


    All LaserWriters       LaserWriter Plus and LaserWriter II
    ---------------------------------------------------------------
    Courier                AvantGarde          Palatino
    Carta                  Bookman             Symbol
    Helvetica              Courier             Times
    Sonata                 Helvetica           ZapfChancery
    Symbol                 Helvetica-Narrow    ZapfDingbats
    Times                  NewCenturySchlbk
    ---------------------------------------------------------------
               Table 2 - Built-in LaserWriter Fonts

Further Reference


This and all of the other Apple II Technical Notes have been converted to HTML by Aaron Heiss as a public service to the Apple II community, with permission by Apple Computer, Inc. Any and all trademarks, registered and otherwise, are properties of their owners.

Carta is a trademark of Adobe Systems Incorporated.

PostScript and Sonata are registered trademarks of Adobe Systems Incorporated.

Helvetica(R), Palatino(R), and Times(R) are registered trademarks of Linotype Co.

ITC Avant Garde(R), ITC Bookman(R), ITC Zapf Chancery(R), and ITC Zapf Dingbats(R) are registered trademarks of International Typeface Corporation.