Renderizar apresentações com fontes de fallback no Android

Visão geral

Aspose.Slides permite renderizar apresentações usando regras de fonte de fallback. Este artigo mostra como criar uma coleção de regras de fonte de fallback, modificar suas regras removendo ou adicionando fontes de fallback e atribuir a coleção usando o método FontsManager.setFontFallBackRulesCollection.

Depois que a coleção de regras de fonte de fallback é atribuída ao FontsManager da apresentação, as regras são aplicadas durante operações como salvar, renderizar e converter a apresentação. O exemplo demonstra como usar as regras configuradas ao renderizar uma miniatura de slide e salvá‑la como imagem PNG.

Renderizar um slide usando regras de fonte de fallback

O exemplo a seguir inclui estas etapas:

  1. Nós criar coleção de regras de fonte de fallback.
  2. Remove uma regra de fonte de fallback e addFallBackFonts a outra regra.
  3. Defina a coleção de regras para getFontsManager.getFontFallBackRulesCollection método.
  4. Com o método Presentation.save podemos salvar a apresentação no mesmo formato ou em outro. Após a coleção de regras de fonte de fallback ser definida no FontsManager, essas regras são aplicadas durante quaisquer operações sobre a apresentação: salvar, renderizar, converter etc.
// Criar nova instância de uma coleção de regras
IFontFallBackRulesCollection rulesList = new FontFallBackRulesCollection();

// criar um número de regras
rulesList.add(new FontFallBackRule(0x400, 0x4FF, "Times New Roman"));

for (IFontFallBackRule fallBackRule : rulesList)
{
    // Tentando remover a fonte FallBack "Tahoma" das regras carregadas
    fallBackRule.remove("Tahoma");

    // E atualizar as regras para o intervalo especificado
    if ((fallBackRule.getRangeEndIndex() >= 0x4000) && (fallBackRule.getRangeStartIndex() < 0x5000))
        fallBackRule.addFallBackFonts("Verdana");
}

// Também podemos remover quaisquer regras existentes da lista
if (rulesList.size() > 0)
    rulesList.remove(rulesList.get_Item(0));

Presentation pres = new Presentation("input.pptx");
try {
    // Atribuindo uma lista de regras preparada para uso
    pres.getFontsManager().setFontFallBackRulesCollection(rulesList);

    // Renderizando miniatura usando a coleção de regras inicializada e salvando como JPEG
   IImage slideImage = pres.getSlides().get_Item(0).getImage(1f, 1f);

   // Salvar a imagem no disco no formato JPEG
   try {
         slideImage.save("Slide_0.jpg", ImageFormat.Jpeg);
   } finally {
        if (slideImage != null) slideImage.dispose();
   }
} finally {
    if (pres != null) pres.dispose();
}