API Reference
OfficeFontFaceCollection
Scoped caller-supplied font faces used by drawing measurement, rasterization, and SVG export. Direct TrueType/OpenType, WOFF 1, WOFF 2, CFF/CFF2, and variable-font containers are handled by the first-party engine. An optional provider can override program loading for specialized engines.
Inheritance
- Object
- OfficeFontFaceCollection
Usage
Explore 23 API references to this type
This type appears in these public API surfaces even when no hand-authored example is attached directly to the page.
Returned or exposed by 13
- Property OfficeDrawing.Fonts
- Method OfficeFontFaceCollection.Add
- Method OfficeFontFaceCollection.AddAlias
- Method OfficeFontFaceCollection.AddFallbackFamily
- Method OfficeFontFaceCollection.AddRange
- Method OfficeFontFaceCollection.AddRangePreservingExisting
- Method OfficeFontFaceCollection.Clone
- Property OfficeFontFallbackPack.Fonts
- Property OfficeImageExportOptions.Fonts
- Property OfficeMathRenderOptions.Fonts
- Property OfficeRasterTextOptions.Fonts
- Property OfficeRenderingProfile.Fonts
- Property OfficeSvgDrawingReaderOptions.Fonts
Accepted by parameters 10
- Extension method OfficeFontFaceCollection.CreateSubstitutionDiagnostic
- Method OfficeFontFaceCollection.AddRange
- Method OfficeFontFaceCollection.AddRangePreservingExisting
- Constructor OfficeFontFallbackPack.OfficeFontFallbackPack
- Method OfficeImageComposer.ComposeRaster
- Method OfficeImageExportBatchBuilder.WithFonts
- Method OfficeImageExportBuilder.WithFonts
- Method OfficeImageExportFontDiagnostics.CreateSubstitutionDiagnostic
- Constructor OfficeRasterCanvas.OfficeRasterCanvas
- Constructor OfficeRenderingProfile.OfficeRenderingProfile
Constructors
public OfficeFontFaceCollection() #Creates an empty scoped font collection.
Methods
public OfficeFontFaceCollection Add(String familyName, Byte[] data, OfficeFontStyle style = Regular) #OfficeFontFaceCollectionAdds or replaces one family/style face. Invalid or unsupported font bytes throw.
Parameters
- familyName System.String
- data System.Byte[]
- style OfficeIMO.Drawing.OfficeFontStyle = Regular
public OfficeFontFaceCollection Add(String familyName, Byte[] data, OfficeFontFaceDescriptor descriptor) #OfficeFontFaceCollectionAdds or replaces one numerically described family face. Invalid or unsupported font bytes throw.
Parameters
- familyName System.String
- data System.Byte[]
- descriptor OfficeIMO.Drawing.OfficeFontFaceDescriptor
public OfficeFontFaceCollection Add(String familyName, Byte[] data, OfficeFontStyle style, OfficeFontUnicodeRangeSet unicodeRanges) #OfficeFontFaceCollectionAdds or replaces one unicode-range-constrained family/style face. A deterministic internal resource family is assigned when the range does not cover all Unicode scalars.
Parameters
- familyName System.String
- data System.Byte[]
- style OfficeIMO.Drawing.OfficeFontStyle
- unicodeRanges OfficeIMO.Drawing.OfficeFontUnicodeRangeSet
public OfficeFontFaceCollection Add(String familyName, Byte[] data, OfficeFontFaceDescriptor descriptor, OfficeFontUnicodeRangeSet unicodeRanges) #OfficeFontFaceCollectionAdds or replaces one unicode-range-constrained, numerically described family face.
Parameters
- familyName System.String
- data System.Byte[]
- descriptor OfficeIMO.Drawing.OfficeFontFaceDescriptor
- unicodeRanges OfficeIMO.Drawing.OfficeFontUnicodeRangeSet
public OfficeFontFaceCollection AddAlias(String aliasFamilyName, String sourceFamilyName) #OfficeFontFaceCollectionAdds another family name for all faces already registered under an existing family. The alias reuses the immutable decoded font programs without decoding or copying them again.
Parameters
- aliasFamilyName System.String
- Additional family name accepted by measurement and export.
- sourceFamilyName System.String
- Existing family whose faces and unicode ranges are reused.
Returns
This collection for fluent configuration.
public OfficeFontFaceCollection AddFallbackFamily(String familyName) #OfficeFontFaceCollectionAppends one registered family to the fallback chain used when requested faces do not cover a text element.
Parameters
- familyName System.String
- Registered family or resource family name to append.
Returns
This collection for fluent configuration.
public OfficeFontFaceCollection AddRange(OfficeFontFaceCollection? fonts) #OfficeFontFaceCollectionAdds independent copies of all faces from another collection.
Parameters
- fonts OfficeIMO.Drawing.OfficeFontFaceCollection?
public OfficeFontFaceCollection AddRangePreservingExisting(OfficeFontFaceCollection? fonts) #OfficeFontFaceCollectionAdds independent copies of faces from another collection without replacing faces already registered under the same family, resource family, and style. Added faces are considered before existing fallback families, while existing document-scoped faces retain precedence.
Parameters
- fonts OfficeIMO.Drawing.OfficeFontFaceCollection?
public OfficeFontFaceCollection Clone() #OfficeFontFaceCollectionCreates an independent collection snapshot.
public IReadOnlyList<OfficeFontFallbackRun> PlanFallbackRuns(String? text, String? familyNames, OfficeFontStyle style = Regular) #IReadOnlyList<OfficeFontFallbackRun>Splits text into grapheme-safe runs using the first scoped family whose selected face covers each text element. Unresolved elements retain the original family list for platform or adapter fallback.
Parameters
- text System.String?
- familyNames System.String?
- style OfficeIMO.Drawing.OfficeFontStyle = Regular
public IReadOnlyList<OfficeFontFallbackRun> PlanFallbackRuns(String? text, String? familyNames, OfficeFontFaceDescriptor descriptor) #IReadOnlyList<OfficeFontFallbackRun>Splits text into grapheme-safe runs after matching numeric weight, stretch, and slant for each family.
Parameters
- text System.String?
- familyNames System.String?
- descriptor OfficeIMO.Drawing.OfficeFontFaceDescriptor
public Boolean TryAdd(String? familyName, Byte[]? data, OfficeFontStyle style = Regular) #BooleanAttempts to add or replace one family/style face without throwing for unsupported font data.
Parameters
- familyName System.String?
- data System.Byte[]?
- style OfficeIMO.Drawing.OfficeFontStyle = Regular
public Boolean TryAdd(String? familyName, Byte[]? data, OfficeFontFaceDescriptor descriptor) #BooleanAttempts to add or replace one numerically described family face.
Parameters
- familyName System.String?
- data System.Byte[]?
- descriptor OfficeIMO.Drawing.OfficeFontFaceDescriptor
public Boolean TryAdd(String? familyName, Byte[]? data, OfficeFontStyle style, OfficeFontUnicodeRangeSet? unicodeRanges) #BooleanAttempts to add or replace one unicode-range-constrained family/style face. A deterministic internal resource family is assigned when the range does not cover all Unicode scalars.
Parameters
- familyName System.String?
- data System.Byte[]?
- style OfficeIMO.Drawing.OfficeFontStyle
- unicodeRanges OfficeIMO.Drawing.OfficeFontUnicodeRangeSet?
public Boolean TryAdd(String? familyName, Byte[]? data, OfficeFontFaceDescriptor descriptor, OfficeFontUnicodeRangeSet? unicodeRanges) #BooleanAttempts to add or replace one unicode-range-constrained, numerically described family face.
Parameters
- familyName System.String?
- data System.Byte[]?
- descriptor OfficeIMO.Drawing.OfficeFontFaceDescriptor
- unicodeRanges OfficeIMO.Drawing.OfficeFontUnicodeRangeSet?
public Boolean TryMeasureText(String? text, Double fontSize, String? familyNames, OfficeFontStyle style, out Double width) #BooleanAttempts to measure text with a matching scoped face.
Parameters
- text System.String?
- fontSize System.Double
- familyNames System.String?
- style OfficeIMO.Drawing.OfficeFontStyle
- width System.Double
public Boolean TryResolveFaceForText(String? text, String? familyNames, OfficeFontStyle style, out OfficeFontFace? face) #BooleanResolves the scoped face that covers the supplied text for the requested CSS/Office family list and style. This uses the same unicode-range and fallback rules as measurement and rendering, requesting weight 400 for regular text or 700 for bold text with the corresponding upright or italic slant.
Parameters
- text System.String?
- familyNames System.String?
- style OfficeIMO.Drawing.OfficeFontStyle
- face OfficeIMO.Drawing.OfficeFontFace?
public Boolean TryResolveFaceForText(String? text, String? familyNames, OfficeFontStyle style, Double fontSize, out OfficeFontFace? face) #BooleanResolves a face at the authored text size, selecting a built-in TrueType optical axis automatically unless the variation resolver explicitly supplied opsz. Provider-owned programs retain their provider-selected axes.
Parameters
- text System.String?
- familyNames System.String?
- style OfficeIMO.Drawing.OfficeFontStyle
- fontSize System.Double
- face OfficeIMO.Drawing.OfficeFontFace?
public Boolean TryResolveFaceForText(String? text, String? familyNames, OfficeFontFaceDescriptor descriptor, Double fontSize, out OfficeFontFace? face) #BooleanResolves numeric weight, stretch, and slant with automatic built-in TrueType optical sizing.
Parameters
- text System.String?
- familyNames System.String?
- descriptor OfficeIMO.Drawing.OfficeFontFaceDescriptor
- fontSize System.Double
- face OfficeIMO.Drawing.OfficeFontFace?
public Boolean TryResolveFaceForText(String? text, String? familyNames, OfficeFontFaceDescriptor descriptor, out OfficeFontFace? face) #BooleanResolves a scoped face using numeric weight, stretch, and slant matching.
Parameters
- text System.String?
- familyNames System.String?
- descriptor OfficeIMO.Drawing.OfficeFontFaceDescriptor
- face OfficeIMO.Drawing.OfficeFontFace?
Inherited Methods
public virtual Boolean Equals(Object? obj) #BooleanParameters
- obj Object?
Properties
public IOfficeFontProgramProvider? FontProgramProvider { get; set; } #Optional decoder and outline engine for formats outside the dependency-free core. The provider reference is retained by collection clones; decoded face programs are immutable.
public Func<OfficeFontProgramLoadRequest, IReadOnlyDictionary<String, Single>?>? FontVariationResolver { get; set; } #Optional variable-font axis resolver invoked for each accepted face. Values are clamped to the font-defined axis range; unknown axes and non-finite values fail closed.
public IReadOnlyList<OfficeFontFace> Faces { get; } #Registered faces in registration order.
public IReadOnlyList<String> FallbackFamilies { get; } #Registered fallback families considered after the families requested by a text run.
Extension Methods
public static OfficeImageExportDiagnostic? CreateSubstitutionDiagnostic(OfficeFontFaceCollection fonts, String? text, String? familyNames, OfficeFontStyle style = Regular, String? source = null) #OfficeImageExportDiagnostic?Reports when the renderer cannot use the first requested font family/style and must select a later family or another font fallback.
Parameters
- fonts OfficeIMO.Drawing.OfficeFontFaceCollection
- text System.String?
- familyNames System.String?
- style OfficeIMO.Drawing.OfficeFontStyle = Regular
- source System.String? = null