Flagstone Software

6739. FSTextConstructor cannot decode complex glyphs in OpenType fonts.

The OpenType format for defining fonts allows new glyphs to be defined by combining existing glyphs to form complex shapes. The FSTextConstructor class in the current release of Transform Utilities does not currently decode complex glyphs. Instead the missing character is substituted which will display a space or empty box. This is currently only a major problem for eastern languages. Western character sets will be displayed correctly - only rarely used symbols will most likely be affected.

Root Cause

The FSTextConstructor code is not implemented to handle complex glyphs.

Workaround?

For standard ASCII characters the glyphs are displayed correctly. However for characters with accents are not displayed correctly. The solution is to use generate fonts using Java's AWT font objects – though decoding these fonts takes significantly more time.

When will it be fixed?

Although Java AWT fonts are also based on font definitions from OpenType files the advantages of being able to decode the font directly from the OpenType file is one of performance. The OpenType font definition is complex and if the specification can be deciphered then support for complete glyphs will be added to the current code base. No date for implementation is available at the moment.

In the long term creating a font library using Flash files is the preferred solution. “Compiling” font definitions into a library of Flash files provides the fastest possible option for creating font objects since there is no conversion between the way the font is encoded. This option is planned for release in the next version of Transform Utilities.