Skip to content

FreeType » Docs » Format-Specific API » BDF and PCF Files


BDF and PCF Files

Synopsis

This section contains the declaration of functions specific to BDF and PCF fonts. They also work for SFNT bitmap fonts that contain a ‘BDF ’ table like X11's .otb fonts.

BDF_PropertyType

Defined in FT_BDF_H (freetype/ftbdf.h).

  typedef enum  BDF_PropertyType_
  {
    BDF_PROPERTY_TYPE_NONE     = 0,
    BDF_PROPERTY_TYPE_ATOM     = 1,
    BDF_PROPERTY_TYPE_INTEGER  = 2,
    BDF_PROPERTY_TYPE_CARDINAL = 3

  } BDF_PropertyType;

A list of BDF property types.

values

BDF_PROPERTY_TYPE_NONE

Value 0 is used to indicate a missing property.

BDF_PROPERTY_TYPE_ATOM

Property is a string atom.

BDF_PROPERTY_TYPE_INTEGER

Property is a 32-bit signed integer.

BDF_PROPERTY_TYPE_CARDINAL

Property is a 32-bit unsigned integer.


BDF_Property

Defined in FT_BDF_H (freetype/ftbdf.h).

  typedef struct BDF_PropertyRec_*  BDF_Property;

A handle to a BDF_PropertyRec structure to model a given BDF/PCF property.


BDF_PropertyRec

Defined in FT_BDF_H (freetype/ftbdf.h).

  typedef struct  BDF_PropertyRec_
  {
    BDF_PropertyType  type;
    union {
      const char*     atom;
      FT_Int32        integer;
      FT_UInt32       cardinal;

    } u;

  } BDF_PropertyRec;

This structure models a given BDF/PCF property.

fields

type

The property type.

u.atom

The atom string, if type is BDF_PROPERTY_TYPE_ATOM. May be NULL, indicating an empty string.

u.integer

A signed integer, if type is BDF_PROPERTY_TYPE_INTEGER.

u.cardinal

An unsigned integer, if type is BDF_PROPERTY_TYPE_CARDINAL.


FT_Get_BDF_Charset_ID

Defined in FT_BDF_H (freetype/ftbdf.h).

  FT_EXPORT( FT_Error )
  FT_Get_BDF_Charset_ID( FT_Face       face,
                         const char*  *acharset_encoding,
                         const char*  *acharset_registry );

Retrieve a BDF font character set identity, according to the BDF specification.

input

face

A handle to the input face.

output

acharset_encoding

Charset encoding, as a C string, owned by the face.

acharset_registry

Charset registry, as a C string, owned by the face.

return

FreeType error code. 0 means success.

note

This function only works with BDF faces and SFNT fonts that have a ‘BDF ’ table, returning an error otherwise. For the latter, a bitmap strike size must be selected first.


FT_Get_BDF_Property

Defined in FT_BDF_H (freetype/ftbdf.h).

  FT_EXPORT( FT_Error )
  FT_Get_BDF_Property( FT_Face           face,
                       const char*       prop_name,
                       BDF_PropertyRec  *aproperty );

Retrieve a BDF property from a BDF or PCF font.

input

face

A handle to the input face.

name

The property name.

output

aproperty

The property.

return

FreeType error code. 0 means success.

note

This function works with BDF and PCF fonts. It returns an error otherwise. It also returns an error if the property is not in the font.

A ‘property’ is a either key-value pair within the STARTPROPERTIES … ENDPROPERTIES block of a BDF font or a key-value pair from the info->props array within a FontRec structure of a PCF font.

Integer properties are always stored as ‘signed’ within PCF fonts; consequently, BDF_PROPERTY_TYPE_CARDINAL is a possible return value for BDF fonts only.

In case of error, aproperty->type is always set to BDF_PROPERTY_TYPE_NONE.

This also works with SFNT fonts that have a ‘BDF ’ table, after a bitmap strike size has been selected.