Gerenciar Porções de Texto em Apresentações em .NET

Visão geral

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 obter 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.

Este artigo mostra como obter as coordenadas do início de uma porção usando o método GetCoordinates(). Ele também destaca cenários comuns relacionados a porções, como aplicar um hyperlink a um único fragmento de texto, entender como a formatação é resolvida por meio da herança de Portion, Paragraph, TextFrame e theme, e lidar com casos em que uma fonte especificada não está disponível. Além disso, observa que o preenchimento de texto, a cor e a transparência podem ser definidos de forma diferente para porções individuais dentro do mesmo parágrafo.

Obter coordenadas de uma porção de texto

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

using (Presentation presentation = new Presentation("Shapes.pptx"))
{
    IAutoShape shape = (IAutoShape)presentation.Slides[0].Shapes[0];
    var textFrame = (ITextFrame)shape.TextFrame;

    foreach (var paragraph in textFrame.Paragraphs)
    {
        foreach (Portion portion in paragraph.Portions)
        {
            PointF point = portion.GetCoordinates();
            Console.Write(Environment.NewLine + "Corrdinates X =" + point.X + " Corrdinates Y =" + point.Y);
        }
    }
}

FAQ

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

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

Como funciona a herança de estilos: o que uma Portion sobrescreve e o que é herdado de Paragraph/TextFrame?

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

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

As Font substitution rules são aplicadas. O texto pode ser reformatado: métricas, hifenização e largura podem mudar, o que impacta o posicionamento preciso.

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

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