用回退字体在 .NET 中呈现演示文稿

Contents
[ ]

以下示例包含以下步骤:

  1. 我们 创建回退字体规则集合
  2. Remove() 删除回退字体规则并将 AddFallBackFonts() 添加到另一个规则。
  3. 将规则集合设置为 FontsManager.FontFallBackRulesCollection 属性。
  4. 使用 Presentation.Save() 方法我们可以以相同的格式保存演示文稿,或保存为其他格式。将回退字体规则集合设置到 FontsManager 后,这些规则会在对演示文稿的任何操作期间生效:保存、渲染、转换等。
// 创建规则集合的新实例
IFontFallBackRulesCollection rulesList = new FontFallBackRulesCollection();

// 创建多个规则
rulesList.Add(new FontFallBackRule(0x400, 0x4FF, "Times New Roman"));
//rulesList.Add(new FontFallBackRule(...));

foreach (IFontFallBackRule fallBackRule in rulesList)
{
	// 尝试从已加载的规则中移除回退字体 "Tahoma"
	fallBackRule.Remove("Tahoma");

	// 并为指定范围更新规则
	if ((fallBackRule.RangeEndIndex >= 0x4000) && (fallBackRule.RangeStartIndex < 0x5000))
		fallBackRule.AddFallBackFonts("Verdana");
}

// 也可以从列表中移除任何现有的规则
if (rulesList.Count > 0)
	rulesList.Remove(rulesList[0]);

using (Presentation pres = new Presentation("input.pptx"))
{
    // 为使用分配准备好的规则列表
    pres.FontsManager.FontFallBackRulesCollection = rulesList;

    // 使用已初始化的规则集合渲染缩略图并保存为 PNG
    using (IImage image = pres.Slides[0].GetImage(1f, 1f))
    {
        image.Save("Slide_0.png", ImageFormat.Png);
    }
}