Отображение презентаций с резервными шрифтами в С++
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();
Узнайте подробнее о том, как Преобразовать слайды PowerPoint в PNG в C++.