Incorporar fontes em apresentações usando C++
Introdução
Fontes incorporadas no PowerPoint ajudam a garantir que sua apresentação mantenha sua aparência pretendida quando aberta em qualquer sistema ou dispositivo. Isso é especialmente importante ao usar fontes personalizadas, de terceiros ou não‑padrão para branding ou fins criativos. Sem fontes incorporadas, o texto pode ser substituído, os layouts podem quebrar e os caracteres podem aparecer como símbolos ilegíveis ou retângulos, comprometendo o design geral.
Aspose.Slides for C++ fornece um conjunto de APIs poderosas para gerenciar fontes incorporadas programaticamente. Você pode usar as classes FontsManager e FontData para inspecionar, adicionar ou remover fontes incorporadas nos arquivos de sua apresentação. Além disso, a classe Compress permite otimizar o tamanho do arquivo comprimindo os dados das fontes sem afetar a qualidade ou a aparência.
Essas ferramentas dão a você controle total sobre a incorporação de fontes, ajudando a manter tipografia consistente entre plataformas enquanto reduz o tamanho do arquivo quando necessário.
Obter fontes incorporadas de uma apresentação
Aspose.Slides for C++ fornece o método GetEmbeddedFonts através da classe FontsManager, que permite recuperar uma lista de fontes incorporadas em uma apresentação PowerPoint. Isso pode ser útil para auditoria do uso de fontes, garantir conformidade com diretrizes de branding ou verificar se todas as fontes necessárias estão incluídas corretamente antes de compartilhar o arquivo.
O código C++ a seguir demonstra como obter fontes incorporadas de um arquivo de apresentação:
// Instanciar a classe Presentation que representa um arquivo de apresentação.
auto presentation = MakeObject<Presentation>(u"embedded_fonts.pptx");
// Obter todas as fontes incorporadas.
auto embeddedFonts = presentation->get_FontsManager()->GetEmbeddedFonts();
// Imprimir nomes das fontes incorporadas.
for (auto&& fontData : embeddedFonts)
{
Console::WriteLine(fontData->get_FontName());
}
presentation->Dispose();
Adicionar fontes incorporadas a uma apresentação
Aspose.Slides for C++ permite incorporar fontes em uma apresentação PowerPoint usando o método AddEmbeddedFont, que possui duas sobrecargas para uso flexível. Você pode controlar a quantidade de fonte que é incorporada usando a enumeração EmbedFontCharacters, por exemplo, escolhendo incorporar apenas os caracteres usados ou todo o conjunto de fontes. Esse recurso é especialmente útil ao preparar uma apresentação para compartilhamento ou distribuição, garantindo que fontes personalizadas ou não‑padrão apareçam corretamente em todos os sistemas, mesmo que essas fontes não estejam instaladas.
O código C++ a seguir verifica todas as fontes usadas em uma apresentação e incorpora quaisquer fontes que ainda não estejam incorporadas.
// Carregar um arquivo de apresentação.
auto presentation = MakeObject<Presentation>(u"sample.pptx");
auto usedFonts = presentation->get_FontsManager()->GetFonts();
auto embeddedFonts = presentation->get_FontsManager()->GetEmbeddedFonts();
for (auto&& fontData : usedFonts)
{
std::function<bool(SharedPtr<IFontData> data)> comparer = [&fontData](SharedPtr<IFontData> data) -> bool
{
return data == fontData;
};
// Verificar se a fonte já está incorporada.
bool isEmbeddedFont = Array<SharedPtr<IFontData>>::Exists(embeddedFonts, comparer);
if (!isEmbeddedFont)
{
// Incorporar a fonte na apresentação.
presentation->get_FontsManager()->AddEmbeddedFont(fontData, EmbedFontCharacters::All);
}
}
// Salvar a apresentação no disco.
presentation->Save(u"embedded_fonts.pptx", SaveFormat::Pptx);
presentation->Dispose();
Remover fontes incorporadas de uma apresentação
Aspose.Slides for C++ fornece o método RemoveEmbeddedFont através da classe FontsManager, que permite remover fontes específicas incorporadas em uma apresentação PowerPoint. Isso pode ajudar a reduzir o tamanho geral do arquivo, especialmente se as fontes incorporadas não são mais usadas ou necessárias. Remover fontes não utilizadas também pode melhorar o desempenho e garantir que sua apresentação inclua apenas recursos essenciais.
O código C++ a seguir demonstra como remover uma fonte incorporada de uma apresentação:
auto fontName = u"Calibri";
// Instanciar a classe Presentation que representa um arquivo de apresentação.
auto presentation = MakeObject<Presentation>(u"embedded_fonts.pptx");
// Obter todas as fontes incorporadas.
auto embeddedFonts = presentation->get_FontsManager()->GetEmbeddedFonts();
for (auto&& fontData : embeddedFonts)
{
if (fontData->get_FontName().Equals(fontName))
{
// Remover a fonte incorporada.
presentation->get_FontsManager()->RemoveEmbeddedFont(fontData);
break;
}
}
presentation->Save(u"removed_font.ppt", SaveFormat::Ppt);
presentation->Dispose();
Comprimir fontes incorporadas
Aspose.Slides for C++ fornece o método CompressEmbeddedFonts através da classe Compress, permitindo reduzir o tamanho geral de uma apresentação otimizando os dados das fontes incorporadas. Isso é especialmente útil quando sua apresentação inclui fontes grandes ou múltiplas, e você deseja manter o arquivo leve para compartilhamento, armazenamento ou uso online — sem comprometer a fidelidade visual do conteúdo.
O código C++ a seguir demonstra como comprimir fontes incorporadas em uma apresentação PowerPoint:
auto presentation = MakeObject<Presentation>(u"sample.pptx");
Compress::CompressEmbeddedFonts(presentation);
presentation->Save(u"compressed_fonts.pptx", SaveFormat::Pptx);
presentation->Dispose();
Perguntas frequentes
Como posso saber se uma fonte específica na apresentação ainda será substituída durante a renderização, apesar da incorporação?
Verifique as informações de substituição no gerenciador de fontes e as regras de fallback/substituição: se a fonte estiver indisponível ou restrita, um fallback será usado.
Vale a pena incorporar fontes “do sistema” como Arial/Calibri?
Normalmente não — elas estão quase sempre disponíveis. Mas para total portabilidade em ambientes “delgados” (Docker, um servidor Linux sem fontes pré‑instaladas), incorporar fontes do sistema pode eliminar o risco de substituições inesperadas.