home *** CD-ROM | disk | FTP | other *** search
-
-
-
-
-
-
-
-
- Bitmap Distribution Format
-
- Version 2.1
-
- X Consortium Standard
-
- X Version 11, Release 6.4
-
-
-
- Copyright 1984, 1987, 1988 Adobe Systems, Inc.
-
- Permission to use, copy, modify, and distribute this soft-
- ware and its documentation for any purpose and without fee
- is hereby granted, provided that the above copyright notice
- appear in all copies and that both that copyright notice and
- this permission notice appear in supporting documentation.
-
-
-
-
-
- The Bitmap Distribution Format (BDF), Version 2.1, is an X
- Consortium standard for font interchange, intended to be
- easily understood by both humans and computers.
-
- File Format
-
- Character bitmap information will be distributed in an
- USASCII-encoded, human-readable form. Each file is encoded
- in the printable characters (octal 40 through 176) of
- USASCII plus carriage return and linefeed. Each file con-
- sists of a sequence of variable-length lines. Each line is
- terminated either by a carriage return (octal 015) and line-
- feed (octal 012) or by just a linefeed.
-
- The information about a particular family and face at one
- size and orientation will be contained in one file. The
- file begins with information pertaining to the face as a
- whole, followed by the information and bitmaps for the indi-
- vidual characters.
-
- A font bitmap description file has the following general
- form, where each item is contained on a separate line of
- text in the file. Tokens on a line are separated by spaces.
- Keywords are in upper case, and must appear in upper case in
- the file.
-
- 1. The word STARTFONT followed by a version number indi-
- cating the exact file format used. The version
- described here is 2.1.
-
-
-
-
-
-
-
-
-
-
- -2-
-
-
- 2. Lines beginning with the word COMMENT may appear any-
- where between the STARTFONT line and the ENDFONT line.
- These lines are ignored by font compilers.
-
- 3. The word FONT followed by either the XLFD font name (as
- specified in part III) or some private font name. Cre-
- ators of private font name syntaxes are encouraged to
- register unique font name prefixes with the X Consor-
- tium to prevent naming conflicts. Note that the name
- continues all the way to the end of the line and may
- contain spaces.
-
- 4. The word SIZE followed by the point size of the charac-
- ters, the x resolution, and the y resolution of the
- device for which these characters were intended.
-
- 5. The word FONTBOUNDINGBOX followed by the width in x,
- height in y, and the x and y displacement of the lower
- left corner from the origin. (See the examples in the
- next section.)
-
- 6. Optionally, the word STARTPROPERTIES followed by the
- number of properties (p) that follow.
-
- 7. Then come p lines consisting of a word for the property
- name followed by either an integer or string surrounded
- by double-quote (octal 042). Internal double-quote
- characters are indicated by using two in a row.
-
- Properties named FONT_ASCENT, FONT_DESCENT, and
- DEFAULT_CHAR should be provided to define the logical
- font-ascent and font-descent and the default-char for
- the font. These properties will be removed from the
- actual font properties in the binary form produced by a
- compiler. If these properties are not provided, a com-
- piler may reject the font or may compute (arbitrary)
- values for these properties.
-
- 8. The property section, if it exists, is terminated by
- ENDPROPERTIES.
-
- 9. The word CHARS followed by the number of character seg-
- ments (c) that follow.
-
- 10. Then come c character segments of the form:
-
- a. The word STARTCHAR followed by up to 14 characters
- (no blanks) of descriptive name of the glyph.
-
- b. The word ENCODING followed by one of the following
- forms:
-
- i. <n> - the glyph index, that is, a positive
- integer representing the character code used
-
-
-
-
-
-
-
-
-
- -3-
-
-
- to access the glyph in X requests, as defined
- by the encoded character set given by the
- CHARSET_REGISTRY-CHARSET_ENCODING font prop-
- erties for XLFD conforming fonts. If these
- XLFD font properties are not defined, the
- encoding scheme is font-dependent.
-
- ii. -1 <n> - equivalent to form above. This syn-
- tax is provided for backward compatibility
- with previous versions of this specification
- and is not recommended for use with new
- fonts.
-
- iii. -1 - an unencoded glyph. Some font compilers
- may discard unencoded glyphs, but, in gen-
- eral, the glyph names may be used by font
- compilers and X servers to implement dynamic
- mapping of glyph repertoires to character
- encodings as seen through the X protocol.
-
- c. The word SWIDTH followed by the scalable width in
- x and y of character. Scalable widths are in
- units of 1/1000th of the size of the character.
- If the size of the character is p points, the
- width information must be scaled by p/1000 to get
- the width of the character in printer's points.
- This width information should be considered as a
- vector indicating the position of the next charac-
- ter's origin relative to the origin of this char-
- acter. To convert the scalable width to the width
- in device pixels, multiply SWIDTH times p/1000
- times r/72, where r is the device resolution in
- pixels per inch. The result is a real number giv-
- ing the ideal print width in device pixels. The
- actual device width must of course be an integral
- number of device pixels and is given in the next
- entry. The SWIDTH y value should always be zero
- for a standard X font.
-
- d. The word DWIDTH followed by the width in x and y
- of the character in device units. Like the
- SWIDTH, this width information is a vector indi-
- cating the position of the next character's origin
- relative to the origin of this character. Note
- that the DWIDTH of a given ``hand-tuned'' WYSIWYG
- glyph may deviate slightly from its ideal device-
- independent width given by SWIDTH in order to
- improve its typographic characteristics on a dis-
- play. The DWIDTH y value should always be zero
- for a standard X font.
-
- e. The word BBX followed by the width in x (BBw),
- height in y (BBh), and x and y displacement (BBox,
- BBoy) of the lower left corner from the origin of
-
-
-
-
-
-
-
-
-
- -4-
-
-
- the character.
-
- f. The optional word ATTRIBUTES followed by the
- attributes as 4 hex-encoded characters. The
- interpretation of these attributes is undefined in
- this document.
-
- g. The word BITMAP.
-
- h. h lines of hex-encoded bitmap, padded on the right
- with zeros to the nearest byte (that is, multiple
- of 8).
-
- i. The word ENDCHAR.
-
- 11. The file is terminated with the word ENDFONT.
-
- Metric Information
-
- Figures 1 and 2 best illustrate the bitmap format and char-
- acter metric information.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -5-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- BBw = 9, BBh = 22, BBox = -2, BBoy = -6
- DWIDTH = 8 0
- SWIDTH = 355 0
- ``+'' = character origin and width
-
- Figure 1: An example of a descender
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -6-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- BBh = 6, BBw = 4, BBox = +2, BBoy = +12
- DWIDTH = 5 0
- SWIDTH = 223 0
-
- Figure 2: An example with the origin outside the bounding box
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -7-
-
-
- An Example File
-
- The following is an abbreviated example of a bitmap file
- containing the specification of two characters (the j and
- quoteright in figures 1 and 2).
-
-
- STARTFONT 2.1
- COMMENT This is a sample font in 2.1 format.
- FONT -Adobe-Helvetica-Bold-R-Normal--24-240-75-75-P-65-ISO8859-1
- SIZE 24 75 75
- FONTBOUNDINGBOX 9 24 -2 -6
- STARTPROPERTIES 19
- FOUNDRY "Adobe"
- FAMILY "Helvetica"
- WEIGHT_NAME "Bold"
- SLANT "R"
- SETWIDTH_NAME "Normal"
- ADD_STYLE_NAME ""
- PIXEL_SIZE 24
- POINT_SIZE 240
- RESOLUTION_X 75
- RESOLUTION_Y 75
- SPACING "P"
- AVERAGE_WIDTH 65
- CHARSET_REGISTRY "ISO8859"
- CHARSET_ENCODING "1"
- MIN_SPACE 4
- FONT_ASCENT 21
- FONT_DESCENT 7
- COPYRIGHT "Copyright (c) 1987 Adobe Systems, Inc."
- NOTICE "Helvetica is a registered trademark of Linotype Inc."
- ENDPROPERTIES
- CHARS 2
- STARTCHAR j
- ENCODING 106
- SWIDTH 355 0
- DWIDTH 8 0
- BBX 9 22 -2 -6
- BITMAP
- 0380
- 0380
- 0380
- 0380
- 0000
- 0700
- 0700
- 0700
- 0700
- 0E00
- 0E00
- 0E00
- 0E00
- 0E00
-
-
-
-
-
-
-
-
-
- -8-
-
-
- 1C00
- 1C00
- 1C00
- 1C00
- 3C00
- 7800
- F000
- E000
- ENDCHAR
- STARTCHAR quoteright
- ENCODING 39
- SWIDTH 223 0
- DWIDTH 5 0
- BBX 4 6 2 12
- ATTRIBUTES 01C0
- BITMAP
- 70
- 70
- 70
- 60
- E0
- C0
- ENDCHAR
- ENDFONT
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-