Skip to main content

Search OfficeIMO

Enter a topic, API type, or PowerShell command.

Documentation Search all OfficeIMO/

API Reference

Class

OfficeFontFaceCollection

Namespace OfficeIMO.Drawing
Assembly OfficeIMO.Core
Source revision 45ddf07f0b84 with working tree changes
Modifiers sealed

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.

Constructors

public OfficeFontFaceCollection() #

Creates an empty scoped font collection.

Methods

Add 4 overloads
public OfficeFontFaceCollection Add(String familyName, Byte[] data, OfficeFontStyle style = Regular) #
Returns: OfficeFontFaceCollection

Adds or replaces one family/style face. Invalid or unsupported font bytes throw.

Parameters

familyName System.String requiredposition: 0
data System.Byte[] requiredposition: 1
style OfficeIMO.Drawing.OfficeFontStyle = Regular optionalposition: 2
public OfficeFontFaceCollection Add(String familyName, Byte[] data, OfficeFontFaceDescriptor descriptor) #
Returns: OfficeFontFaceCollection

Adds or replaces one numerically described family face. Invalid or unsupported font bytes throw.

Parameters

familyName System.String requiredposition: 0
data System.Byte[] requiredposition: 1
descriptor OfficeIMO.Drawing.OfficeFontFaceDescriptor requiredposition: 2
public OfficeFontFaceCollection Add(String familyName, Byte[] data, OfficeFontStyle style, OfficeFontUnicodeRangeSet unicodeRanges) #
Returns: OfficeFontFaceCollection

Adds 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 requiredposition: 0
data System.Byte[] requiredposition: 1
style OfficeIMO.Drawing.OfficeFontStyle requiredposition: 2
unicodeRanges OfficeIMO.Drawing.OfficeFontUnicodeRangeSet requiredposition: 3
public OfficeFontFaceCollection Add(String familyName, Byte[] data, OfficeFontFaceDescriptor descriptor, OfficeFontUnicodeRangeSet unicodeRanges) #
Returns: OfficeFontFaceCollection

Adds or replaces one unicode-range-constrained, numerically described family face.

Parameters

familyName System.String requiredposition: 0
data System.Byte[] requiredposition: 1
descriptor OfficeIMO.Drawing.OfficeFontFaceDescriptor requiredposition: 2
unicodeRanges OfficeIMO.Drawing.OfficeFontUnicodeRangeSet requiredposition: 3
public OfficeFontFaceCollection AddAlias(String aliasFamilyName, String sourceFamilyName) #
Returns: OfficeFontFaceCollection

Adds 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 requiredposition: 0
Additional family name accepted by measurement and export.
sourceFamilyName System.String requiredposition: 1
Existing family whose faces and unicode ranges are reused.

Returns

This collection for fluent configuration.

public OfficeFontFaceCollection AddFallbackFamily(String familyName) #
Returns: OfficeFontFaceCollection

Appends one registered family to the fallback chain used when requested faces do not cover a text element.

Parameters

familyName System.String requiredposition: 0
Registered family or resource family name to append.

Returns

This collection for fluent configuration.

public OfficeFontFaceCollection AddRange(OfficeFontFaceCollection? fonts) #
Returns: OfficeFontFaceCollection

Adds independent copies of all faces from another collection.

Parameters

fonts OfficeIMO.Drawing.OfficeFontFaceCollection? requiredposition: 0
public OfficeFontFaceCollection AddRangePreservingExisting(OfficeFontFaceCollection? fonts) #
Returns: OfficeFontFaceCollection

Adds 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? requiredposition: 0
public OfficeFontFaceCollection Clone() #
Returns: OfficeFontFaceCollection

Creates an independent collection snapshot.

PlanFallbackRuns 2 overloads
public IReadOnlyList<OfficeFontFallbackRun> PlanFallbackRuns(String? text, String? familyNames, OfficeFontStyle style = Regular) #
Returns: 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? requiredposition: 0
familyNames System.String? requiredposition: 1
style OfficeIMO.Drawing.OfficeFontStyle = Regular optionalposition: 2
public IReadOnlyList<OfficeFontFallbackRun> PlanFallbackRuns(String? text, String? familyNames, OfficeFontFaceDescriptor descriptor) #
Returns: IReadOnlyList<OfficeFontFallbackRun>

Splits text into grapheme-safe runs after matching numeric weight, stretch, and slant for each family.

Parameters

text System.String? requiredposition: 0
familyNames System.String? requiredposition: 1
descriptor OfficeIMO.Drawing.OfficeFontFaceDescriptor requiredposition: 2
TryAdd 4 overloads
public Boolean TryAdd(String? familyName, Byte[]? data, OfficeFontStyle style = Regular) #
Returns: Boolean

Attempts to add or replace one family/style face without throwing for unsupported font data.

Parameters

familyName System.String? requiredposition: 0
data System.Byte[]? requiredposition: 1
style OfficeIMO.Drawing.OfficeFontStyle = Regular optionalposition: 2
public Boolean TryAdd(String? familyName, Byte[]? data, OfficeFontFaceDescriptor descriptor) #
Returns: Boolean

Attempts to add or replace one numerically described family face.

Parameters

familyName System.String? requiredposition: 0
data System.Byte[]? requiredposition: 1
descriptor OfficeIMO.Drawing.OfficeFontFaceDescriptor requiredposition: 2
public Boolean TryAdd(String? familyName, Byte[]? data, OfficeFontStyle style, OfficeFontUnicodeRangeSet? unicodeRanges) #
Returns: Boolean

Attempts 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? requiredposition: 0
data System.Byte[]? requiredposition: 1
style OfficeIMO.Drawing.OfficeFontStyle requiredposition: 2
unicodeRanges OfficeIMO.Drawing.OfficeFontUnicodeRangeSet? requiredposition: 3
public Boolean TryAdd(String? familyName, Byte[]? data, OfficeFontFaceDescriptor descriptor, OfficeFontUnicodeRangeSet? unicodeRanges) #
Returns: Boolean

Attempts to add or replace one unicode-range-constrained, numerically described family face.

Parameters

familyName System.String? requiredposition: 0
data System.Byte[]? requiredposition: 1
descriptor OfficeIMO.Drawing.OfficeFontFaceDescriptor requiredposition: 2
unicodeRanges OfficeIMO.Drawing.OfficeFontUnicodeRangeSet? requiredposition: 3
public Boolean TryMeasureText(String? text, Double fontSize, String? familyNames, OfficeFontStyle style, out Double width) #
Returns: Boolean

Attempts to measure text with a matching scoped face.

Parameters

text System.String? requiredposition: 0
fontSize System.Double requiredposition: 1
familyNames System.String? requiredposition: 2
style OfficeIMO.Drawing.OfficeFontStyle requiredposition: 3
width System.Double requiredposition: 4
TryResolveFaceForText 4 overloads
public Boolean TryResolveFaceForText(String? text, String? familyNames, OfficeFontStyle style, out OfficeFontFace? face) #
Returns: Boolean

Resolves 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? requiredposition: 0
familyNames System.String? requiredposition: 1
style OfficeIMO.Drawing.OfficeFontStyle requiredposition: 2
face OfficeIMO.Drawing.OfficeFontFace? requiredposition: 3
public Boolean TryResolveFaceForText(String? text, String? familyNames, OfficeFontStyle style, Double fontSize, out OfficeFontFace? face) #
Returns: Boolean

Resolves 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? requiredposition: 0
familyNames System.String? requiredposition: 1
style OfficeIMO.Drawing.OfficeFontStyle requiredposition: 2
fontSize System.Double requiredposition: 3
face OfficeIMO.Drawing.OfficeFontFace? requiredposition: 4
public Boolean TryResolveFaceForText(String? text, String? familyNames, OfficeFontFaceDescriptor descriptor, Double fontSize, out OfficeFontFace? face) #
Returns: Boolean

Resolves numeric weight, stretch, and slant with automatic built-in TrueType optical sizing.

Parameters

text System.String? requiredposition: 0
familyNames System.String? requiredposition: 1
descriptor OfficeIMO.Drawing.OfficeFontFaceDescriptor requiredposition: 2
fontSize System.Double requiredposition: 3
face OfficeIMO.Drawing.OfficeFontFace? requiredposition: 4
public Boolean TryResolveFaceForText(String? text, String? familyNames, OfficeFontFaceDescriptor descriptor, out OfficeFontFace? face) #
Returns: Boolean

Resolves a scoped face using numeric weight, stretch, and slant matching.

Parameters

text System.String? requiredposition: 0
familyNames System.String? requiredposition: 1
descriptor OfficeIMO.Drawing.OfficeFontFaceDescriptor requiredposition: 2
face OfficeIMO.Drawing.OfficeFontFace? requiredposition: 3

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) #
Returns: 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 requiredposition: 0
text System.String? requiredposition: 1
familyNames System.String? requiredposition: 2
style OfficeIMO.Drawing.OfficeFontStyle = Regular optionalposition: 3
source System.String? = null optionalposition: 4