Gerenciar Porções de Texto em Apresentações Usando C++

Introdução

Uma porção de texto representa um fragmento específico de texto dentro de um parágrafo e permite que você trabalhe com esse fragmento de forma independente do conteúdo ao redor. No Aspose.Slides, as porções podem ser usadas quando você precisa recuperar a posição de um fragmento de texto, aplicar formatação apenas a parte de um parágrafo ou controlar o comportamento do texto em um nível mais detalhado.

Obter Coordenadas de uma Porção de Texto

O método GetCoordinates() foi adicionado às classes IPortion e Portion, permitindo recuperar as coordenadas do início da porção:

auto presentation = System::MakeObject<Presentation>(u"Shapes.pptx");
auto shape = System::ExplicitCast<IAutoShape>(presentation->get_Slides()->idx_get(0)->get_Shapes()->idx_get(0));
auto textFrame = shape->get_TextFrame();

for (const auto& paragraph : textFrame->get_Paragraphs())
{
    for (const auto& portion : paragraph->get_Portions())
    {
        PointF point = portion->GetCoordinates();
        Console::WriteLine(String(u"Coordinates X =") + point.get_X() + u" Coordinates Y =" + point.get_Y());
    }
}

Perguntas Frequentes

Posso aplicar um hiperlink a apenas parte do texto dentro de um único parágrafo?

Sim, você pode atribuir um hiperlink a uma porção individual; apenas esse fragmento será clicável, não o parágrafo inteiro.

Como funciona a herança de estilos: o que um Portion sobrescreve e o que é obtido do Paragraph/TextFrame?

As propriedades no nível de Portion têm a precedência mais alta. Se uma propriedade não estiver definida no Portion, o mecanismo a obtém do Paragraph; se também não estiver definida lá, ela vem do TextFrame ou do estilo do theme.

O que acontece se a fonte especificada para um Portion estiver ausente na máquina/servidor de destino?

As Regras de substituição de fontes são aplicadas. O texto pode ser refluído: métricas, hifenização e largura podem mudar, o que importa para um posicionamento preciso.

Posso definir transparência ou gradiente de preenchimento de texto específico de uma Portion de forma independente do restante do parágrafo?

Sim, a cor do texto, o preenchimento e a transparência no nível do Portion podem ser diferentes dos fragmentos vizinhos.