Fonts and font families
Font families
A font family is a collection of faces that appear in different font weight and styles:
type FontFamily struct {
ID int
Name string
}
You can add faces to the font family:
func (ff *FontFamily) AddMember(fontsource *FontSource, weight FontWeight, style FontStyle) error
where the font source is:
type FontSource struct {
Name string
FontFeatures []string
Location string
Data []byte
SizeAdjust float64 // 1 - SizeAdjust is the relative adjustment.
// The sub font index within the font file.
Index int
}
and the weight is a number between 100 and 900 or a predefined name FontWeight100
, FontWeight200
, …, FontWeight900
and the style is FontStyleNormal
, FontStyleItalic
or FontStyleOblique
.
You can retrieve a font source with
func (ff *FontFamily) GetFontSource(weight FontWeight, style FontStyle) (*FontSource, error)
which will give you the closest match.
Converting font weight and style from string
To get a font weight or a font style from a string you can use these two functions:
func ResolveFontWeight(fw string, inheritedValue FontWeight) FontWeight
func ResolveFontStyle(fs string) FontStyle
The inherited value for the font weight is used when the string is “bolder”.