# 39.7. `fm` — Font Manager interface

2.6 版后已移除: The `fm` module has been removed in Python 3.

This module provides access to the IRIS Font Manager library. It is available only on Silicon Graphics machines. See also: 4Sight User’s Guide, section 1, chapter 5: “Using the IRIS Font Manager.”

This is not yet a full interface to the IRIS Font Manager. Among the unsupported features are: matrix operations; cache operations; character operations (use string operations instead); some details of font info; individual glyph metrics; and printer matching.

It supports the following operations:

`fm.``init`()

  Initialization function. Calls `fminit()`. It is normally not necessary to call this function, since it is called automatically the first time the `fm` module is imported.

`fm.``findfont`(fontname)

  Return a font handle object. Calls `fmfindfont(fontname)`.

`fm.``enumerate`()

  Returns a list of available font names. This is an interface to `fmenumerate()`.

`fm.``prstr`(string)

  Render a string using the current font (see the `setfont()` font handle method below). Calls `fmprstr(string)`.

`fm.``setpath`(string)

  Sets the font search path. Calls `fmsetpath(string)`. (XXX Does not work!?!)

`fm.``fontpath`()

  Returns the current font search path.

Font handle objects support the following operations:

`font handle.scalefont(factor)`

  Returns a handle for a scaled version of this font. Calls `fmscalefont(fh, factor)`.

`font handle.setfont()`

  Makes this font the current font. Note: the effect is undone silently when the font handle object is deleted. Calls `fmsetfont(fh)`.

`font handle.getfontname()`

  Returns this font’s name. Calls `fmgetfontname(fh)`.

`font handle.getcomment()`

  Returns the comment string associated with this font. Raises an exception if there is none. Calls `fmgetcomment(fh)`.

`font handle.getfontinfo()`

  Returns a tuple giving some pertinent data about this font. This is an interface to `fmgetfontinfo()`. The returned tuple contains the following numbers: `(printermatched, fixed_width, xorig, yorig, xsize, ysize, height, nglyphs)`.

`font handle.getstrwidth(string)`

  Returns the width, in pixels, of string when drawn in this font. Calls `fmgetstrwidth(fh, string)`.