Renderizar Presentación con Fuente Fallback
Contents
[
Hide
]
El siguiente ejemplo incluye estos pasos:
- Creamos una colección de reglas de fuente fallback.
- Remove() una regla de fuente fallback y AddFallBackFonts() a otra regla.
- Establecemos la colección de reglas en FontsManager::set_FontFallBackRulesCollection() propiedad.
- Con el método Presentation::Save() podemos guardar la presentación en el mismo formato, o guardarla en otro. Después de que la colección de reglas de fuentes fallback se establece en FontsManager, estas reglas se aplican durante cualquier operación sobre la presentación: guardar, renderizar, convertir, etc.
// Crear nueva instancia de una colección de reglas
auto rulesList = MakeObject<FontFallBackRulesCollection>();
// Crear un número de reglas
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)
{
// Intentando eliminar la fuente fallback "Tahoma" de las reglas cargadas
fallBackRule->Remove(u"Tahoma");
// Y actualizar reglas para el rango especificado
if ((fallBackRule->get_RangeEndIndex() >= static_cast<uint32_t>(0x4000)) &&
(fallBackRule->get_RangeStartIndex() < static_cast<uint32_t>(0x5000)))
{
fallBackRule->AddFallBackFonts(u"Verdana");
}
}
// También podemos eliminar cualquier regla existente de la lista
if (rulesList->get_Count() > 0)
{
rulesList->Remove(rulesList->idx_get(0));
}
auto pres = System::MakeObject<Presentation>(u"input.pptx");
// Asignando una lista de reglas preparadas para usar
pres->get_FontsManager()->set_FontFallBackRulesCollection(rulesList);
// Renderizando miniatura utilizando la colección de reglas inicializada y guardando en PNG
auto image = pres->get_Slide(0)->GetImage(1.f, 1.f);
image->Save(u"Slide_0.png", ImageFormat::Png);
image->Dispose();
pres->Dispose();
Lee más sobre Guardar y Conversión en Presentación.