Rendre les présentations avec des polices de secours en C++
Contents
[
Hide
]
L’exemple suivant comprend ces étapes :
- Nous créons une collection de règles de polices de secours.
- Remove() une règle de police de secours et AddFallBackFonts() à une autre règle.
- Transmettez la collection de règles à la méthode FontsManager::set_FontFallBackRulesCollection().
- Avec la méthode Presentation::Save() nous pouvons enregistrer la présentation dans le même format, ou l’enregistrer dans un autre. Après que la collection de règles de polices de secours soit définie dans FontsManager, ces règles sont appliquées lors de toute opération sur la présentation : enregistrement, rendu, conversion, etc.
// Créer une nouvelle instance d'une collection de règles
auto rulesList = MakeObject<FontFallBackRulesCollection>();
// Créer un certain nombre de règles
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)
{
// Tentative de suppression de la police FallBack "Tahoma" des règles chargées
fallBackRule->Remove(u"Tahoma");
// Et mise à jour des règles pour la plage spécifiée
if ((fallBackRule->get_RangeEndIndex() >= static_cast<uint32_t>(0x4000)) &&
(fallBackRule->get_RangeStartIndex() < static_cast<uint32_t>(0x5000)))
{
fallBackRule->AddFallBackFonts(u"Verdana");
}
}
// Nous pouvons également supprimer toutes les règles existantes de la liste
if (rulesList->get_Count() > 0)
{
rulesList->Remove(rulesList->idx_get(0));
}
auto pres = System::MakeObject<Presentation>(u"input.pptx");
// Assignation d'une liste de règles préparée pour utilisation
pres->get_FontsManager()->set_FontFallBackRulesCollection(rulesList);
// Rendu de la miniature en utilisant la collection de règles initialisée et sauvegarde au format PNG
auto image = pres->get_Slide(0)->GetImage(1.f, 1.f);
image->Save(u"Slide_0.png", ImageFormat::Png);
image->Dispose();
pres->Dispose();
En savoir plus sur la façon de Convert PowerPoint Slides to PNG in C++.