Especificar fontes de fallback para apresentações em C++

Visão geral

Aspose.Slides permite especificar fontes de fallback para a renderização e operações de exportação de apresentações. As fontes de fallback são usadas quando a fonte principal não contém glifos para caracteres específicos.

O comportamento de fallback é configurado por meio de regras de fallback. Cada regra associa um intervalo Unicode a uma ou mais fontes que podem conter os glifos necessários. Você pode definir regras para diferentes intervalos de caracteres, adicionar ou remover fontes de fallback de regras existentes e organizar várias regras em uma coleção de regras de fontes de fallback.

As regras de fallback são configurações de renderização em tempo de execução. Elas não modificam o arquivo da apresentação e não são armazenadas dentro do arquivo PPTX.

Regras de fallback

Aspose.Slides oferece suporte à interface IFontFallBackRule e à classe FontFallBackRule para especificar as regras de aplicação de uma fonte de fallback. A classe FontFallBackRule representa uma associação entre o intervalo Unicode especificado, usado para buscar glifos ausentes, e uma lista de fontes que podem conter os glifos corretos:

uint32_t startUnicodeIndex = 0x0B80;
uint32_t endUnicodeIndex = 0x0BFF;

auto firstRule = MakeObject<FontFallBackRule>(startUnicodeIndex, endUnicodeIndex, u"Vijaya");
auto secondRule = MakeObject<FontFallBackRule>(static_cast<uint32_t>(0x3040), static_cast<uint32_t>(0x309F), u"MS Mincho, MS Gothic");

// Using multiple ways you can add fonts list:
auto fontNames = MakeArray<String>({ u"Segoe UI Emoji, Segoe UI Symbol", u"Arial" });

auto thirdRule = MakeObject<FontFallBackRule>(static_cast<uint32_t>(0x1F300), static_cast<uint32_t>(0x1F64F), fontNames);

Também é possível Remove() uma fonte de fallback ou AddFallBackFonts() em um objeto FontFallBackRule existente.

FontFallBackRulesCollection pode ser usada para organizar uma lista de objetos FontFallBackRule quando for necessário especificar regras de substituição de fontes de fallback para múltiplos intervalos Unicode.

Perguntas frequentes

Qual é a diferença entre uma fonte de fallback, substituição de fonte e incorporação de fonte?

Uma fonte de fallback é usada apenas para caracteres ausentes na fonte principal. Font substitution substitui toda a fonte especificada por outra fonte. Font embedding inclui as fontes dentro do arquivo de saída para que os destinatários vejam o texto como planejado.

As fontes de fallback são aplicadas durante exportações como PDF, PNG ou SVG, ou apenas na renderização em tela?

Sim. O fallback afeta todas as rendering and export operations onde os caracteres precisam ser desenhados, mas estão ausentes na fonte de origem.

Configurar fallback altera o próprio arquivo da apresentação e a configuração persiste em aberturas futuras?

Não. As regras de fallback são configurações de renderização em tempo de execução no seu código; elas não são armazenadas dentro do .pptx e não aparecerão no PowerPoint.

O sistema operacional (Windows/Linux/macOS) e o conjunto de diretórios de fontes afetam a seleção de fallback?

Sim. O mecanismo resolve fontes a partir das pastas do sistema disponíveis e de quaisquer additional paths que você fornecer. Se uma fonte não estiver fisicamente disponível, uma regra que a referencia não terá efeito.

O fallback funciona para WordArt, SmartArt e gráficos?

Sim. Quando esses objetos contêm texto, o mesmo mecanismo de substituição de glifos é aplicado para renderizar os caracteres ausentes.