Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Aspose.Words 需要 TrueType 字體來執行各種任務,包括以固定頁面格式 render 文檔,例如 PDF 或 XPS。 當 Aspose.Words 渲染一篇文件時,它必須將 TrueType 字體嵌入成最終的文件中,或對這些字體進行子集嵌入,這是一種常見於文件生成過程中的做法,其中包括熱門的 PDF 或 XPS 格式。 這可保證該文件在任何閲覧者眼中會相同。 此外,XPS 規格也要求字體必須總是嵌入在文件中。
要確保 Aspose.Words 正確地測量字元並成功嵌入相關字體,以下條件必須符合:
請注意,在文件中使用的字體代表一個實體,例如姓氏、風格、大小或顏色,與TrueType字體(物理字體)實體不同。Aspose.Words 在處理過程中將文件中的字體轉換為物理字體。 這使某些工作能夠完成,通常是透過計算排版構建與嵌入/設定固定頁面格式。 其他較不流行的任務,例如在載入 HTML 時解決字體並進行替代,以及將一些流量格式嵌入/子集化,也會受限。
所有可用的字體操作機制都在 FontSettings 類別中。 此類別負責從定義的字體來源中獲取字體,以及如下所述的字體替換過程。
字體會以幾步方式解析:
當 Aspose.Words 遇到文件中的字體時,它會試圖從字體存儲源中找到的每個字體檔案中取得基本的字體資訊,例如字體全名、字體系列名稱、版本及風格。 在所有字體獲取後,Aspose.Words 使用這些細節來尋找所需的字體資料或要求的字體的合適替換。
由於上述的過程耗費時間,它可能會影響首次開啟應用程式的效能。 不過,每個 FontSettings 的實例都有自己的快取記憶體,這可以減少後面文件的處理時間。 例如,您可以在不同文件間共享一個 FontSettings 類別的實例,這允許您加快文件的加載速度。 下面的例子示範了這點:
在 FontSettings 並非明顯定義時, Aspose.Words 使用預設的 FontSettings 實例。 這個物件也在文書中自動共享,可以這樣提取:
如果你確定所有處理文件都需要相同的字體設定,那麼建議設置和使用預設的 FontSettings 實例。 假設您需要為所有文件使用相同的字體來源。 在這種情況下,您可以按照以下的方式修改預設實例:
在文件中的文字可以用各種不同的字體來格式化,例如Arial、Times New Roman、Verdana和其他的。。 當 Aspose.Words 渲染一篇文件時,它會嘗試選擇在文件中指定的書體。
然而,當正確的字體無法找到時,Aspose.Words 必須用類似的字體代替它。Aspose.Words 根據以下程序選擇字體:
FontConfig 程式庫,它設計用於提供系統全體的字型設定、客製化及讓應用軟體存取。 不然,這本書庫可以很容易地由使用者安裝。
Aspose.Words 知道如何檢索資料並解讀 FontConfig 的結果,以作為自己目的使用。 預設中,FontConfig 這個工具是禁用的。 您可以按照以下方式啟用:" fontSettings.SubstitutionSettings.FontConfigSubstitution.Enabled = true;
FontConfig 替換規則來替換字體,就會用這個規則來替換。 <TableSubstitutionSettings xmlns="Aspose.Words">
<SubstitutesTable>
<Item OriginalFont="Arabic Transparent" SubstituteFonts="Arial" />
…
</SubstitutesTable>
</TableSubstitutionSettings>
fontSettings.SubstitutionSettings.TableSubstitution.Load("Table.xml");
fontSettings.SubstitutionSettings.TableSubstitution.Enabled = false;
FontInfoCollection fontInfos = doc.FontInfos;
fontSettings.SubstitutionSettings.FontInfoSubstitution.Enabled = false;
FontInfo 替換也失敗時。 此規則也是預設啟用。 根據此規則, Aspose.Words 將嘗試使用 DefaultFontName 屬性中指定的預設字體。 如果使用者尚未選擇自己的預設字型,那麼將使用 Times New Roman 作為預設字型。 此規則可如以下所示禁用: fontSettings.SubstitutionSettings.DefaultFontSubstitution.Enabled = false;
fontSettings.SubstitutionSettings.DefaultFontSubstitution.DefaultFontName;
fontSettings.SubstitutionSettings.DefaultFontSubstitution.DefaultFontName = "Arial";
若 FontInfo 可用,則 FontInfo 字型替換規則 將總是解決字型並蓋過預設字型規則。 若你要使用預設字型規則,你應該禁用 FontInfo 子替換規則。 請注意,字型設定取代規則 在多數情況下可解決字型問題,並因而蓋過所有其他規則。
有時,可能不清楚為什麼文件的版面已改變或某些字體看起來與預期不同。 在這些情況下,由 IWarningCallback 介面實作的字型交換警告訊息可以派上用場。 他們具有FontSubstitution警告類型和標準描述文本格式,字型 ‘
“-“替代名稱從文件” –為用 AltName代替 “- ‘fontconfig substitution’ – 由字型設定規則替換” “-表替換為以表格替換規則 “-字型資訊替換”–“用字型資訊替換規則” -預設字型替代– 以預設字型規則進行替代 “-第一可用的字體–以第一可用的字體取代”
在 Aspose.Words 中使用了兩種不同的機制:字體替換和字體備援。 字體替換是當文件中指定的字體無法從字體來源中找到,而字體來源如上節錄所述時使用。 字型備援機制是在字型解析時使用的,但是它不包含特定字符。 在这种情况下, Aspose.Words 试图使用字符的备用字体之一。
有個 BuildAutomatic 方法,透過掃描可用字體自動建立回退設定。 由於此方法可能會產生非最佳的回退設定,您可以透過使用 FontFallbackSettings 類別的屬性來控制字型回退行為。 此類別指定字型退讓機制的設定。 您可以按照以下方式取得 FontFallbackSettings 類別的實例:
.NET
FontFallbackSettings settings = fontSettings.FallbackSettings;
與表格替換規則相似,此機制使用XML表格進行配置。 這些 XML 資料表可以使用以下方法載入和儲存:
.Net
fontSettings.FallbackSettings.Load("MyNewFallbackTable.xml");
fontSettings.FallbackSettings.Save("Current_FallbackTable.xml");
第 Aspose.Words 版包含兩種資料表: MsOfficeFallbackSetting.xml 和 NotoFallbackSetting.xml。
MsOfficeFallbackSetting這個表格定義了一個替換策略,用於一系列字符,和Microsoft Word所用的策略相似。 因此,此策略需要安裝 Microsoft 個 Office 字體。您可以使用以下方法啟用 MsOfficeFallbackSetting:
.NET
fontSettings.FallbackSettings.LoadMsOfficeFallbackSettings();
此 NotoFallbackSetting 表格是為了與 Google Noto 字型(請參閱下一段的 Google Noto 字型設定)使用,特別而作成,可按以下方式啟用:
.NET
fontSettings.FallbackSettings.LoadNotoFallbackSettings();
接下來的程式碼範例示範如何從 XML 檔案載入字型備援設定:
在上述程式碼範例中,下列的 XML 檔案被使用:
<FontFallbackSettings xmlns="Aspose.Words">
<FallbackTable>
<!-- Fallback table consists of the rules. Each rule defines the fallback fonts which Aspose.Words should use for specified Unicode ranges and base fonts. Rules are checked one by one and the first applicable fallback font is used. If none of the rules are applicable then ".notdef" glyph (missing glyph) from the base font will be used. -->
<!-- This rule defines that "Vijaya" fallback font should be used for "U+0B80..U+0BFF Tamil" Unicode block. -->
<Rule Ranges="0B80-0BFF" FallbackFonts="Vijaya"/>
<!-- This rule defines that "Segoe UI Emoji" and "Segoe UI Symbol" fallback fonts should be used for "U+1F300..U+1F5FF Miscellaneous Symbols and Pictographs", "U+1F600..U+1F64F Emoticons" Unicode blocks. If "Segoe UI Emoji" font does not contains the glyph for the requested Unicode code point then "Segoe UI Symbol" will be checked. -->
<Rule Ranges="1F300-1F64F" FallbackFonts="Segoe UI Emoji, Segoe UI Symbol"/>
<!-- This rule defines that "Arial" fallback font should be used for "U+2000..U+206F General Punctuation", "U+2070..U+209F Superscripts and Subscripts" Unicode blocks and specific "U+20B9 INDIAN RUPEE SIGN" code point. -->
<Rule Ranges="2000-206F, 2070-209F, 20B9" FallbackFonts="Arial" />
<!-- These rules defines that for "U+3040..U+309F Hiragana" Unicode block "MS Gothic" fallback font should be used if base font is "Times New Roman" and "MS Mincho" fallback font for all other base fonts. -->
<Rule Ranges="3040-309F" FallbackFonts="MS Gothic" BaseFonts="Times New Roman"/>
<Rule Ranges="3040-309F" FallbackFonts="MS Mincho"/>
<!-- This rule defines that "Arial Unicode MS" fallback font should be used if applicable fallback font was not found by previous rules. -->
<Rule FallbackFonts="Arial Unicode MS"/>
</FallbackTable>
</FontFallbackSettings>Aspose.Words 提供預設的字體替代設定,供 Google Noto 字體使用。 這些是使用SIL Open Font License授權的免費字型,可從 Google Noto 字型下載。 FontFallbackSettings類別提供一個 LoadNotoFallbackSettings 方法。 它會加載預設的備用設定,這些設定使用以下代碼示例中顯示的 Google Noto 字體:
Aspose.Words 會自動在檔案系統上尋找 TrueType 字體。 通常你可以仰賴 Aspose.Words 的預設動作來找到 TrueType 字體,但有時你需要指定自己包含 TrueType 字體的資料夾。 Specifying TrueType Fonts Location這個話題描述Aspose.Words在哪裡尋找字體以及如何指定自己的字體位置。
在 Aspose.Words 和 Microsoft Word 的字體格式處理上有些差異,如下表所示:
| Microsoft Word | Aspose.Words | |
|---|---|---|
| TrueType 字型和具有 TrueType 輪廓的 OpenType 字型 | 支援。 | 受支援。 |
| 具有PostScript線條的OpenType字型 | 支援大多數情境。 嵌入到固定頁格式,例如PDF和XPS,不受支援。 文字用位圖圖像取代。 | 支援大多數場景,包括將嵌入到固定頁面格式。 |
| 開型字體變體 | 只有命名實例才支援。 連續變數不支援。 | 僅支援預設实例。 命名實例和連續變體不支援。 |
| Type1 字體 | 在 Windows 版本中支援,在 2013 年之前以及 macOS 版本中。 支援從 2013 年開始的 Windows 版本,將會被撤除。 | 不支援。 |
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.