A parsed font program: glyph outlines and metrics by glyph id, and the lookups its format has (glyph names, "cmap" subtables). What an IFontProgramParser returns.
public abstract class FontProgram
ISO 32000-2 §9.9. A program is selected by glyph id; mapping character codes to glyph ids is the PDF font's job (§9.6.5 for simple
fonts, §9.7.4.2 for CIDFonts), which reads the lookups a program exposes. A lookup the format does not have returns its "not
available" value (an empty list, false, null); none of them throw.
Thread safety: a program is immutable once returned by its parser and shared by every page and thread of its document; tables are located when it is parsed and read lazily, once. Deviations found later (a damaged glyph) are reported through the FontProgramContext it was parsed with; in strict mode the call that finds one throws.
kind:method, kind:property, kind:ctor. Press Esc to clear.FontProgram()Initializes a new instance of the FontProgram class.AscenderGets the typographic ascender, in glyph space units; 0 when the program records none.BuiltInEncodingGets the program's built-in encoding: the glyph name of each of the 256 character codes, .notdef where it maps none; null when the format has no built-in encoding (TrueType) or the program records none.CharacterMapsGets the subtables of the program's "cmap" table; empty when it has none (or its format has no such table).DescenderGets the typographic descender (usually negative), in glyph space units; 0 when the program records none.FontBBoxGets the bounding box of all glyphs, in glyph space; empty at the origin when the program records none.FontMatrixGets the matrix that maps glyph space to text space, such as [1/unitsPerEm 0 0 1/unitsPerEm 0 0] for TrueType.FormatGets the format of the program.GlyphCountGets the number of glyphs: valid glyph ids are 0 to GlyphCount − 1, and glyph 0 is the missing glyph (.notdef).LineGapGets the typographic line gap, in glyph space units; 0 when the program records none.PostScriptNameGets the PostScript name of the program, or null when it records none.GetGlyphName(Int32)Gets a glyph's name, or null when the program does not name it.GetMetrics(Int32)Gets a glyph's horizontal metrics, in glyph space units; zero when the program records none or the glyph id is out of range.GetOutline(Int32, GlyphOutline)Writes a glyph's outline into outline, which is cleared first.TryGetGlyphId(String, out Int32)Looks up a glyph by name: the "post" table for TrueType, the charset for CFF, the CharStrings for Type 1.TryGetSfntData(out ReadOnlyMemory<Byte>, out Int32)Gets the program's bytes as an sfnt file (a TrueType or OpenType program, or a TrueType collection and the index of this program's font in it), for a backend that hands the program to a platform font engine to draw its glyphs natively.