Table of Contents

Class OdfFontResolver

Namespace
OdfKit.Styles
Assembly
OdfKit.dll

Provides the OdfFontResolver API. 提供 ODF 文件的字型解析與內嵌功能。

public static class OdfFontResolver
Inheritance
OdfFontResolver
Inherited Members

Methods

EmbedFontSubsets(OdfPackage, OdfNode, OdfNode)

Performs embed font subsets. 若已註冊字型子集化實作,掃描文件中的 PUA 自造字並將對應子集字型嵌入封裝。

public static void EmbedFontSubsets(OdfPackage package, OdfNode contentRoot, OdfNode stylesRoot)

Parameters

package OdfPackage

ODF 套件

contentRoot OdfNode

內容 XML 的根節點

stylesRoot OdfNode

樣式 XML 的根節點

EmbedFonts(OdfPackage, OdfNode, OdfNode)

Performs embed fonts. 掃描並將文件中定義的所有字型內嵌至套件中。

public static void EmbedFonts(OdfPackage package, OdfNode contentRoot, OdfNode stylesRoot)

Parameters

package OdfPackage

ODF 套件

contentRoot OdfNode

內容 XML 的根節點

stylesRoot OdfNode

樣式 XML 的根節點

GetFontFallbackCandidates(string)

Gets font fallback candidates. 取得指定字型的解析候選序列,依序包含原始名稱、使用者註冊替代字型與內建跨平台替代字型。

public static IReadOnlyList<string> GetFontFallbackCandidates(string fontName)

Parameters

fontName string

字型名稱

Returns

IReadOnlyList<string>

依優先順序排列且已去除重複項目的字型候選序列

IsTrueTypeCollection(string)

Returns whether this instance is true type collection. 檢查指定字型檔案是否為 TrueType Collection(.ttc)格式。PDFsharp 等部分渲染後端不支援直接讀取

public static bool IsTrueTypeCollection(string filePath)

Parameters

filePath string

字型檔案路徑

Returns

bool

若檔案以 TTC 簽章('ttcf')開頭則為 true

MapFont(string)

Maps font. 取得指定字型的實質替代字型名稱。若無替代規則則傳回原名稱。

public static string MapFont(string fontName)

Parameters

fontName string

字型名稱

Returns

string

替代後或原字型名稱

RegisterFallback(string, string)

Registers fallback. 註冊字型替代對照規則(例如在無微軟字型之 Linux/Docker 上將 "MS YaHei" 對照至 "Noto Sans CJK TC")。

public static void RegisterFallback(string targetFont, string replacementFont)

Parameters

targetFont string

要替代的目標字型名稱

replacementFont string

用來替代的字型名稱

Exceptions

ArgumentNullException

當參數為空時拋出

RegisterFont(string, string)

Registers font. 顯式註冊字型對應。

public static void RegisterFont(string fontName, string filePath)

Parameters

fontName string

字型名稱

filePath string

字型檔案的路徑

Exceptions

ArgumentNullException

fontNamefilePath 為 null 時拋出

FileNotFoundException

當找不到指定的字型檔案時拋出

RegisterFontDirectory(string)

Registers font directory. 註冊用於搜尋字型檔案的目錄。

public static void RegisterFontDirectory(string directoryPath)

Parameters

directoryPath string

字型目錄的路徑

Exceptions

ArgumentNullException

directoryPath 為 null 時拋出

DirectoryNotFoundException

當找不到指定的字型目錄時拋出

RegisterFontSubsetter(IFontSubsetter)

Registers font subsetter. 註冊字型子集化擴充實作。

public static IDisposable RegisterFontSubsetter(IFontSubsetter subsetter)

Parameters

subsetter IFontSubsetter

字型子集化實作

Returns

IDisposable

可用於還原先前註冊狀態的資源控制代碼

Exceptions

ArgumentNullException

subsetternull 時擲出

ResolveFontFallback(string, Func<string, bool>)

Resolves font fallback. 依指定可用性探針解析第一個可使用的字型候選名稱。

public static string? ResolveFontFallback(string fontName, Func<string, bool> isAvailable)

Parameters

fontName string

字型名稱

isAvailable Func<string, bool>

用來判斷字型候選是否可使用的探針

Returns

string

第一個可使用的候選字型名稱,若沒有候選符合則為 null

Exceptions

ArgumentNullException

isAvailablenull 時擲出

ResolveFontPath(string)

Resolves font path. 依字型家族名稱解析字型的絕對路徑。

public static string? ResolveFontPath(string fontName)

Parameters

fontName string

字型名稱

Returns

string

字型檔案的絕對路徑,若無法解析則為 null

WarnIfUnresolvable(string, string)

Performs warn if unresolvable. 檢查指定字型名稱是否能成功解析出實際字型檔案;若找不到則發出一次性警告(同一名稱不重複記錄),

public static bool WarnIfUnresolvable(string fontName, string context)

Parameters

fontName string

字型名稱

context string

用於警告訊息的情境描述(例如觸發此字型查詢的功能名稱)

Returns

bool

若該字型可成功解析則為 true