使用 JavaScript 在簡報中設定字型替代
概述
字型替代允許 Aspose.Slides 在渲染或轉換期間原始簡報字型不可用時使用其他字型。您可以透過 FontsManager 類別的 getSubstitutions 方法查詢已被替代的字型。
Aspose.Slides 也允許您定義字型替代規則。例如,您可以指定將無法存取的字型替換為其他可用的字型,然後透過簡報的字型管理員套用這些規則。
設定字型替代規則
Aspose.Slides 允許您以以下方式設定字型規則,以決定在特定情況(例如字型無法存取)時需執行的操作:
- 載入相關的簡報。
- 載入將被替換的字型。
- 載入新字型。
- 新增替換規則。
- 將規則加入簡報字型替換規則集合。
- 產生投影片影像以觀察效果。
以下 JavaScript 程式碼示範字型替代過程:
// 載入簡報
var pres = new aspose.slides.Presentation("Fonts.pptx");
try {
// 載入將被取代的來源字型
var sourceFont = new aspose.slides.FontData("SomeRareFont");
// 載入新字型
var destFont = new aspose.slides.FontData("Arial");
// 新增字型取代規則
var fontSubstRule = new aspose.slides.FontSubstRule(sourceFont, destFont, aspose.slides.FontSubstCondition.WhenInaccessible);
// 將規則加入字型替代規則集合
var fontSubstRuleCollection = new aspose.slides.FontSubstRuleCollection();
fontSubstRuleCollection.add(fontSubstRule);
// 將字型規則集合加入規則清單
pres.getFontsManager().setFontSubstRuleList(fontSubstRuleCollection);
// 當 SomeRareFont 無法存取時,將使用 Arial 字型取代
var slideImage = pres.getSlides().get_Item(0).getImage(1.0, 1.0);
// 以 JPEG 格式將影像儲存至磁碟
try {
slideImage.save("Thumbnail_out.jpg", aspose.slides.ImageFormat.Jpeg);
} finally {
if (slideImage != null) {
slideImage.dispose();
}
}
} finally {
if (pres != null) {
pres.dispose();
}
}
NOTE
您可能想查看字型替換。數學公式字型的限制
字型替代規則參與在渲染與轉換期間使用的標準字型選擇程序。它們適用於一般文字情境,Aspose.Slides 可根據已設定的規則將無法存取的字型替換為其他可用的字型。
然而,Office 數學公式有一項重要限制。若公式是使用 Cambria Math 建立,Aspose.Slides 仍可能需要原始的 Cambria Math 字型才能正確計算與渲染公式版面。因此,將 Cambria Math 替換為其他數學字型(例如 STIX Two Math)並不支援於公式渲染,且仍可能拋出需要 Cambria Math 的例外。
若要成功轉換此類簡報,請確保 Cambria Math 在執行期間可供 Aspose.Slides 使用。您可以將此字型安裝於作業系統,或以外部字型的方式提供,使其能在渲染與轉換期間參與正常的字型選擇程序。
此限制僅適用於公式渲染。上述的標準字型替代規則仍會在原始字型無法存取時,套用於一般簡報文字。
常見問題
字型替換與字型替代有何差異?
Replacement 是在整個簡報中強制將一種字型覆寫為另一種字型。替代則是在特定條件下觸發的規則,例如當原始字型不可用時,使用指定的備用字型。
替代規則究竟何時套用?
這些規則會參與於載入、渲染與轉換期間評估的標準字型選擇序列;若選擇的字型不可用,則會套用替換或替代。
如果未設定替換或替代且系統缺少該字型,預設行為為何?
函式庫會嘗試選取最接近的可用系統字型,類似於 PowerPoint 的行為。
我可以在執行期間附加自訂外部字型以避免替代嗎?
可以。您可以在執行期間新增外部字型,讓函式庫在選擇與渲染時納入這些字型,亦包括後續的轉換。
Aspose 是否隨函式庫一起分發任何字型?
不會。Aspose 不會分發任何付費或免費字型;字型的添加與使用需由您自行斟酌與負責。
Windows、Linux 與 macOS 上的替代行為有差異嗎?
有。字型的偵測會從作業系統的字型目錄開始。各平台的預設可用字型集合與搜尋路徑不同,會影響字型的可用性與是否需要替代。
我該如何準備環境以減少批次轉換期間意外的替代情況?
在機器或容器之間同步字型集,新增外部字型以滿足輸出文件的需求,並在可能的情況下於簡報中嵌入字型,確保選取的字型在渲染時可用。