使用回退字体渲染演示文稿
Contents
[
Hide
]
以下示例包含这些步骤:
- 我们 创建回退字体规则集合。
- Remove() 一个回退字体规则并 AddFallBackFonts() 添加到另一个规则。
- 将规则集合设置为 FontsManager::set_FontFallBackRulesCollection() 属性。
- 使用 Presentation::Save() 方法,我们可以以相同格式保存演示文稿,或以另一种格式保存。在将回退字体规则集合设置为 FontsManager 后,这些规则在对演示文稿的任何操作中应用:保存、渲染、转换等。
// 创建规则集合的新实例
auto rulesList = MakeObject<FontFallBackRulesCollection>();
// 创建多个规则
rulesList->Add(MakeObject<FontFallBackRule>(static_cast<uint32_t>(0x400), static_cast<uint32_t>(0x4FF), u"Times New Roman"));
//rulesList.Add(new FontFallBackRule(...));
for (const auto& fallBackRule : rulesList)
{
// 尝试从已加载的规则中移除回退字体 "Tahoma"
fallBackRule->Remove(u"Tahoma");
// 更新指定范围的规则
if ((fallBackRule->get_RangeEndIndex() >= static_cast<uint32_t>(0x4000)) &&
(fallBackRule->get_RangeStartIndex() < static_cast<uint32_t>(0x5000)))
{
fallBackRule->AddFallBackFonts(u"Verdana");
}
}
// 我们还可以从列表中移除任何现有规则
if (rulesList->get_Count() > 0)
{
rulesList->Remove(rulesList->idx_get(0));
}
auto pres = System::MakeObject<Presentation>(u"input.pptx");
// 为使用分配准备好的规则列表
pres->get_FontsManager()->set_FontFallBackRulesCollection(rulesList);
// 使用初始化的规则集合渲染缩略图并保存为 PNG
auto image = pres->get_Slide(0)->GetImage(1.f, 1.f);
image->Save(u"Slide_0.png", ImageFormat::Png);
image->Dispose();
pres->Dispose();
阅读更多关于 演示文稿中的保存和转换。