Fonts

Ibex supports TrueType fonts. When Ibex starts font information is read from font files. By default Ibex looks for font files in:

  • c:\windows\fonts- on Windows
  • /usr/share/fonts/truetype - on Linux

If fonts are stored in other than these default locations your can tell Ibex where to find them by using a FontFinder object as shown here:

using ibex4.fontdatabase;
...
FontFinder finder = new FontFinder();
finder.addSearchPath(@"c:\windows\fonts\");
finder.addSearchPath(@"d:\windows\fonts\");
FODocument doc = new FODocument(finder);

This approach works on Windows and Linux. Information on how to list the fonts which Ibex can use can be found in the usage chapter on page manual_api.html#listing-available-fonts.

How Ibex uses fonts

Your FO file contains a series of letters. Each of which is stored in the file as a one or two byte code point such as 65 for 'A' or 0x8226 for the bullet character.

Ibex reads a TrueType font file and looks in the font to see if the font supports that particular code point. If it does, then the font maps that code point to a glyph, which is what gets displayed.

Not all fonts support all code points. For example arial.ttf is 370 KB in size, whereas arialuni.ttf is 23,000 KB, because arialuni has glyphs for a many more code points that arial.ttf.

Not all fonts map a code point to the same glyph. Some fonts map code points they do not support to a glyph such as the square box one.