Configurar Substituição de Fonte em Apresentações Usando Java

Visão geral

A substituição de fontes permite que o Aspose.Slides use outra fonte quando a fonte original da apresentação não está disponível durante a renderização ou conversão. Você pode verificar quais fontes foram substituídas usando o método getSubstitutions da interface IFontsManager.

O Aspose.Slides também permite definir regras de substituição de fontes. Por exemplo, você pode especificar que uma fonte inacessível seja substituída por outra fonte disponível e então aplicar essas regras através do gerenciador de fontes da apresentação.

Definir regras de substituição de fontes

O Aspose.Slides permite definir regras para fontes que determinam o que deve ser feito em determinadas condições (por exemplo, quando uma fonte não pode ser acessada) da seguinte maneira:

  1. Carregue a apresentação relevante.
  2. Carregue a fonte que será substituída.
  3. Carregue a nova fonte.
  4. Adicione uma regra para a substituição.
  5. Adicione a regra à coleção de regras de substituição de fontes da apresentação.
  6. Gere a imagem do slide para observar o efeito.

Este código Java demonstra o processo de substituição de fontes:

// Carrega uma apresentação
Presentation pres = new Presentation("Fonts.pptx");
try {
    // Carrega a fonte de origem que será substituída
    IFontData sourceFont = new FontData("SomeRareFont");
    
    // Carrega a nova fonte
    IFontData destFont = new FontData("Arial");
    
    // Adiciona uma regra de fonte para substituição
    IFontSubstRule fontSubstRule = new FontSubstRule(sourceFont, destFont, FontSubstCondition.WhenInaccessible);
    
    // Adiciona a regra à coleção de regras de substituição de fontes
    IFontSubstRuleCollection fontSubstRuleCollection = new FontSubstRuleCollection();
    fontSubstRuleCollection.add(fontSubstRule);
    
    // Adiciona uma coleção de regras de fonte à lista de regras
    pres.getFontsManager().setFontSubstRuleList(fontSubstRuleCollection);
    
    // A fonte Arial será usada no lugar da SomeRareFont quando esta estiver inacessível
    IImage slideImage = pres.getSlides().get_Item(0).getImage(1f, 1f);
    
    // Salva a imagem no disco no formato JPEG
    try {
          slideImage.save("Thumbnail_out.jpg", ImageFormat.Jpeg);
    } finally {
         if (slideImage != null) slideImage.dispose();
    }
} finally {
    if (pres != null) pres.dispose();
}

Limitações para fontes de equações matemáticas

As regras de substituição de fontes participam do processo padrão de seleção de fontes usado durante a renderização e conversão. Elas são adequadas para cenários de texto regular onde o Aspose.Slides pode substituir uma fonte inacessível por outra fonte disponível de acordo com a regra configurada.

Entretanto, as equações matemáticas do Office têm uma limitação importante. Se uma equação foi criada com Cambria Math, o Aspose.Slides pode ainda exigir a fonte original Cambria Math para calcular e renderizar corretamente o layout da equação. Por causa disso, substituir Cambria Math por outra fonte matemática, como STIX Two Math, não é suportado para a renderização de equações e ainda pode resultar em uma exceção indicando que Cambria Math é necessária.

Para converter essas apresentações com sucesso, certifique‑se de que Cambria Math esteja disponível para o Aspose.Slides em tempo de execução. Você pode instalar a fonte no sistema operacional ou fornecê‑la como uma external font para que ela participe do processo normal de seleção de fontes durante a renderização e conversão.

Esta limitação é específica para a renderização de equações. As regras padrão de substituição de fontes descritas acima ainda se aplicam ao texto regular da apresentação quando a fonte original está inacessível.

Perguntas Frequentes

Qual é a diferença entre substituição de fonte e substituição de fonte?

Replacement é uma sobrescrição forçada de uma fonte por outra em toda a apresentação. Substituição é uma regra que é acionada sob uma condição específica, por exemplo quando a fonte original não está disponível, e então uma fonte de fallback designada é usada.

Quando exatamente as regras de substituição são aplicadas?

As regras participam da sequência padrão de font selection que é avaliada durante o carregamento, renderização e conversão; se a fonte escolhida não estiver disponível, a substituição ou substituição forçada é aplicada.

Qual é o comportamento padrão se nem substituição nem substituição de fonte estiverem configuradas e a fonte estiver ausente no sistema?

A biblioteca tentará escolher a fonte do sistema mais próxima disponível, similar ao comportamento do PowerPoint.

Posso anexar fontes externas personalizadas em tempo de execução para evitar a substituição?

Sim. Você pode add external fonts em tempo de execução para que a biblioteca as considere na seleção e renderização, inclusive para conversões subsequentes.

A Aspose distribui alguma fonte com a biblioteca?

Não. A Aspose não distribui fontes pagas ou gratuitas; você adiciona e usa fontes por sua conta e risco.

Existem diferenças no comportamento de substituição entre Windows, Linux e macOS?

Sim. A descoberta de fontes inicia a partir dos diretórios de fontes do sistema operacional. O conjunto padrão de fontes disponíveis e os caminhos de pesquisa diferem entre as plataformas, o que afeta a disponibilidade e a necessidade de substituição.

Como devo preparar o ambiente para minimizar substituições inesperadas durante conversões em lote?

Sincronize o conjunto de fontes entre máquinas ou contêineres, add the external fonts necessários para os documentos de saída e embed fonts nas apresentações sempre que possível, para que as fontes escolhidas estejam disponíveis durante a renderização.