Отрисовка презентации с резервным шрифтом

Contents
[ ]

Следующий пример включает в себя эти шаги:

  1. Мы создаем коллекцию правил резервных шрифтов.
  2. Remove() правило резервного шрифта и AddFallBackFonts() к другому правилу.
  3. Установить коллекцию правил в свойство FontsManager::set_FontFallBackRulesCollection().
  4. С помощью метода 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
pres->get_Slides()->idx_get(0)->GetImage(1.f, 1.f)->Save(u"Slide_0.png", ImageFormat::Png);