Font Store Component Overview

The Font Store contains all of the fonts and typefaces on a phone. It is encapsulated by the Font and Bitmap server which provides a client-side class that applications use to find which fonts are available and to find fonts to match their requirements.

The Font Store component is sometimes called the Open Font System or Open Font Framework.

Required background

  • You require no background knowledge or experience use the Font Store using the Font and Bitmap Server interfaces.

  • You require no background knowledge or experience to add new font files to the Font Store. You must simply copy the files to the appropriate location.

  • To create a font file or a font rasterizer, you require an in-depth knowledge of fonts and Symbian programming.

Architectural relationships

The Font Store can contain three types of font: bitmap fonts, which are stored as fixed-size pixel definitions; open fonts, which may be stored in any format; and linked fonts, which use characters from two or more other fonts. Open fonts must be converted into bitmaps (rasterized) before they can be used so the Font Store must also contain a font rasterizer for each format of open font.

Fonts are stored on Symbian phones as files. The Font Store maintains a list of font files along with specifications for each font that the file contains. When an application requests a font the Font Store searches its list for the best match. If the font is a bitmap font the Font Store loads it into the Font and Bitmap Server's shared heap (unless the font is in eXecute In Place (XIP) ROM, in which case it is accessed directly from ROM). If the font is an open font the Font Store uses the associated open font rasterizer to rasterize glyphs into the heap as they are required. Font rasterizers are ECOM plugins.

Figure 1. Font Store relationships

Font Store API summary

The Font Store contains APIs for specifying and selecting fonts and for rasterizing open fonts.

API Description


Bitmap-based font object


Central font storage class


Linked fonts typeface group


Linked font creation


Linked font typeface element spec


Generic outline font object


Open font file


Open font rasterizer


Open font rasterizer context


Algorithmic style attributes


Character information


Linked fonts


Diacritic attachment point information


Open font character metrics


Open font typeface information


Basic open font typeface information


Open font glyph information


Open font information


Open font specification

Font Store tasks

The following functionality is provided by the fntstore subsystem component:

  • Font loading

    Font file loading using plug-in font rasterizers if required.

  • Font request matching

    Closest-fit matching of font requests.

  • Font linking

    The creation and use of Linked Fonts – virtual fonts that are made out of one or (usually) more physical fonts. These can be used to:

    • Combine multiple character ranges from individual fonts into a single font.

    • Allow an existing font containing a particular script to be customized to use regional variant characters.

    • Allow a comprehensive range of scripts to be built into a device ROM and multiple possible subsets to be defined and used by software configuration.

    Linked fonts are primarily used for system fonts. The fact that a font is a linked font is invisible to the user.

Platform security information

Font data files are installed in the read-only folder \resource\fonts.