Table of Contents

Class FontFace

Namespace
DocWright.Fonts
Assembly
DocWright.Fonts.dll

A loaded OpenType face with parsed metrics, cmap and optional kerning data.

public sealed class FontFace : IFontFace
Inheritance
FontFace
Implements
Inherited Members

Properties

FamilyName

Gets the typographic family name.

GlyphCount

Gets the number of glyph metrics exposed by this face.

HasCffOutlines

Gets a value indicating whether this face uses CFF outlines.

HasKerningPairs

Gets a value indicating whether the face carries legacy kern format-0 pairs: the pair kerning the engine applies to text it shapes from the character map for a document outside compatibility mode 15, and the fallback for one in it. A GPOS kern feature alone does not count here; a face that kerns only there is kerned by the engine only when a ShapeRequest asks for OpenType kerning, as Word kerns it only in mode 15 (WORDQUIRKS.md WQ-0049).

HheaAscender

Gets the ascent from the horizontal header (hhea.ascender, fUnits).

HheaDescender

Gets the descent from the horizontal header (hhea.descender, fUnits; usually negative).

HheaLineGap

Gets the line gap from the horizontal header (hhea.lineGap, fUnits).

IsSymbolEncoded

Gets a value indicating whether this face's character map is symbol-encoded — that is, whether the subtable DocWright maps through is a Microsoft Symbol (3,0) table.

NeedsSyntheticBold

Gets a value indicating whether synthetic bold should be applied.

NeedsSyntheticItalic

Gets a value indicating whether synthetic italic should be applied.

Panose

Gets the face PANOSE vector.

PostScriptName

Gets the PostScript name from the name table.

SourceName

Gets the source identifier for this face (file path or embedded part id).

StrikeoutPosition

Gets the strikeout position from OS/2 (yStrikeoutPosition, fUnits): the top edge of the strikethrough above the baseline, which Word scales to the drawn size and rounds to its grain (WQ-0054). Zero when undeclared.

StrikeoutSize

Gets the strikeout thickness from OS/2 (yStrikeoutSize, fUnits). Zero when undeclared, in which case a caller falls back rather than drawing nothing.

Style

Gets the intrinsic slant style parsed from OS/2/head/post.

SubfamilyName

Gets the subfamily name from the name table.

SubscriptYOffset

Gets the subscript baseline drop from OS/2 (ySubscriptYOffset, fUnits).

SubscriptYSize

Gets the subscript em size from OS/2 (ySubscriptYSize, fUnits; 0 when undeclared).

SuperscriptYOffset

Gets the superscript baseline rise from OS/2 (ySuperscriptYOffset, fUnits).

SuperscriptYSize

Gets the superscript em size from OS/2 (ySuperscriptYSize, fUnits; 0 when undeclared).

TypoAscender

Gets the ascent from OS/2 typo metrics (fUnits).

TypoDescender

Gets the descent from OS/2 typo metrics (fUnits; usually negative).

TypoLineGap

Gets the line gap from OS/2 typo metrics (fUnits).

UnderlinePosition

Gets the underline position from the post table (fUnits; negative below the baseline, as the table stores it). Word draws an underline whose top edge is this, scaled to the drawn size and rounded to its 1/600-inch grain, below the baseline (WQ-0054). Zero when the table is absent or too short.

UnderlineThickness

Gets the underline thickness from the post table (fUnits). Word's underline is this, scaled to the drawn size and rounded to its grain (WQ-0054). Zero when undeclared, in which case a caller falls back rather than drawing nothing.

UnitsPerEm

Gets the font's design units per em (from the OpenType head table).

UsesTypoMetrics

Gets a value indicating whether USE_TYPO_METRICS is set in OS/2 fsSelection.

WeightClass

Gets the OpenType weight class (OS/2 usWeightClass).

WidthClass

Gets the OpenType width class (OS/2 usWidthClass).

WinAscent

Gets the ascent from OS/2 Windows metrics (fUnits).

WinDescent

Gets the descent from OS/2 Windows metrics (fUnits; positive magnitude).

Methods

GetAdvanceWidthFontUnits(ushort)

Gets one glyph advance in font units from hmtx.

GetKerningAdjustmentFontUnits(ushort, ushort)

Gets the legacy kern table's adjustment for one glyph pair, in font units: the pair kerning the engine applies to text it shapes from the character map for a document outside compatibility mode 15, never the GPOS kern feature's value.

MapCodePoint(int)

Maps one Unicode scalar value to a glyph id via cmap.

TryGetGlyphBoundingBox(ushort, out GlyphBoundingBox)

Tries to get one glyph bounding box (fUnits) parsed from glyf/loca.