Dil ID: 1
Dil Adı: english
Dil Kodu: en5 Audio Concepts Brand's Products
Dünyanın En Büyük
Elektronik Bilgi Kütüphanesi



8989898989
CHAPTER 4
TrueType Fonts
Device Operation
77
Device Operation 4
There are three classes of printers, known as Class A devices, Class B devices, and Class
C devices. The subject of this developer note, LaserWriter Pro printer, is a Class A device.
This section describes how TrueType fonts are handled on Class A printers. It also
describes how TrueType fonts are handled on Class B, and Class C devices, to provide
definition by comparison for the LaserWriter Pro printer.
Class A Devices 4
On Class A devices, such as the LaserWriter Pro printer, the downloadable TrueType
code is extraneous data and is discarded when the printer determines it is not needed.
Any low-level patches are similarly discarded. A system-level operator or flag on
Class A devices is invoked to determine whether the TrueType code and patches are
needed. The entries and behavior of Type 42 fonts are intended to be very similar to the
LaserWriter built-in PostScript fonts (Type 1). Like Type 1 fonts, Type 42 fonts have an
implicit
BuildChar
procedure, as opposed to the explicit
BuildChar
entry for
Type 3 fonts.
When a character bitmap is needed from a Type 42 font, the character cache is checked
first. If the bitmap is not cached, the character code is used as an index into the font’s
encoding array, returning a character name. This name is used as an index into the
CharStrings
dictionary, which is a required entry in the font dictionary. The value
corresponding to the character name is an integer, representing the glyph index in the
'sfnt'
resource. The
'sfnt'
resource has a table for mapping character codes to glyph
indexes, but PostScript allows an extra level of indirection in this mapping to reencode
fonts. The glyph index and the
'sfnt' data itself from the scalable fonts entry are used
to rasterize the character.
Adobe built-in font formats (Type 1) have a capability called charstring procedures, that
allows user-defined characters to be added to the CharStrings dictionary. If the value
of the CharStrings entry corresponding to a character name is an executable array
(procedure), the following steps take place:
1. The systemdict dictionary and the font dictionary are pushed onto the dictionary
stack.
2. The character code is pushed onto the operand stack.
3. The procedure is executed.
4. The systemdict dictionary and the font dictionary are popped from the
dictionary stack.
The semantics of the procedure are almost identical to those of the Type 3 font format
BuildChar procedure, except that in the Type 3 procedure, nothing is pushed onto the
dictionary stack and the font dictionary is passed onto the operand stack. The contents of
the procedure must follow the same rules as the Type 3 font format BuildChar