Obtener los límites de la porción de texto en presentaciones .NET
Resumen
Una porción de texto representa un fragmento concreto de texto dentro de un párrafo y le permite trabajar con ese fragmento de forma independiente del contenido circundante. En Aspose.Slides, las porciones pueden usarse cuando necesita obtener los límites de un fragmento de texto, aplicar formato sólo a una parte de un párrafo o controlar el comportamiento del texto a un nivel más detallado.
Este artículo muestra cómo obtener el rectángulo delimitador de una porción mediante IPortion.GetRect. También muestra cómo obtener las coordenadas del comienzo de una porción mediante IPortion.GetCoordinates. Además, destaca escenarios comunes relacionados con porciones, como aplicar un hipervínculo a un único fragmento de texto, comprender cómo se resuelve el formato a través de la herencia de porción, párrafo, marco de texto y tema, y manejar casos en los que una fuente especificada no está disponible.
Obtener límites de una porción de texto
Utilice IPortion.GetRect para recuperar el rectángulo delimitador de una porción de texto:
using var presentation = new Presentation("Shapes.pptx");
var slide = presentation.Slides[0];
var shape = (IAutoShape)slide.Shapes[0];
foreach (var paragraph in shape.TextFrame.Paragraphs)
{
foreach (var portion in paragraph.Portions)
{
var rectangle = portion.GetRect();
Console.WriteLine($"X = {rectangle.X}; Y = {rectangle.Y}; Width = {rectangle.Width}; Height = {rectangle.Height}");
}
}
Obtener coordenadas de una porción de texto
Utilice IPortion.GetCoordinates para recuperar las coordenadas del comienzo de una porción de texto:
using var presentation = new Presentation("Shapes.pptx");
var slide = presentation.Slides[0];
var shape = (IAutoShape)slide.Shapes[0];
foreach (var paragraph in shape.TextFrame.Paragraphs)
{
foreach (var portion in paragraph.Portions)
{
var point = portion.GetCoordinates();
Console.WriteLine($"X = {point.X}; Y = {point.Y}");
}
}
Preguntas frecuentes
¿Puedo aplicar un hipervínculo sólo a parte del texto dentro de un único párrafo?
Sí, puede asignar un hipervínculo a una porción individual; sólo ese fragmento será clicable, no todo el párrafo.
¿Cómo funciona la herencia de estilos: qué anula una porción y qué se toma de un párrafo o de un marco de texto?
Las propiedades a nivel de porción tienen la máxima precedencia. Si una propiedad no está establecida en el IPortion, Aspose.Slides la toma del IParagraph. Si tampoco está establecida allí, Aspose.Slides usa el estilo del ITextFrame o del theme.
¿Qué ocurre si la fuente especificada para una porción falta en la máquina o el servidor de destino?
Se aplican las reglas de sustitución de fuentes. El texto puede volver a fluir: las métricas, la hyphenación y el ancho pueden cambiar, lo que afecta al posicionamiento preciso.
¿Puedo establecer la transparencia del relleno de texto o un degradado específicos de la porción independientemente del resto del párrafo?
Sí, el color, el relleno y la transparencia del texto a nivel del IPortion pueden diferir de los fragmentos vecinos.