Obtener límites del párrafo de presentaciones en Python
Obtener coordenadas de párrafo y porción en TextFrame
Con Aspose.Slides for Python a través de .NET, los desarrolladores ahora pueden obtener las coordenadas rectangulares de Paragraph dentro de la colección de párrafos de TextFrame. También permite obtener las coordenadas de una porción dentro de la colección de porciones de un párrafo. En este tema, vamos a demostrar, con la ayuda de un ejemplo, cómo obtener las coordenadas rectangulares de un párrafo junto con la posición de la porción dentro de un párrafo.
Obtener coordenadas rectangulares de párrafo
Se ha añadido el nuevo método GetRect(). Permite obtener el rectángulo de los límites del párrafo.
import aspose.slides as slides
# Instanciar un objeto Presentation que representa un archivo de presentación
with slides.Presentation(path + "Shapes.pptx") as presentation:
shape = presentation.slides[0].shapes[0]
textFrame = shape.text_frame
rect = textFrame.paragraphs[0].get_rect()
Obtener tamaño de párrafo y porción dentro del marco de texto de una celda de tabla
Para obtener el tamaño y las coordenadas de la Portion o del Paragraph en el marco de texto de una celda de tabla, puede usar los métodos IPortion.GetRect y IParagraph.GetRect.
Este código de ejemplo demuestra la operación descrita:
import aspose.slides as slides
import aspose.pydrawing as draw
with slides.Presentation(path + "source.pptx") as pres:
tbl = pres.slides[0].shapes[0]
cell = tbl.rows[1][1]
x = tbl.X + tbl.rows[1][1].offset_x
y = tbl.Y + tbl.rows[1][1].offset_y
for para in cell.text_frame.paragraphs:
if para.text == "":
continue
rect = para.get_rect()
shape = pres.slides[0].shapes.add_auto_shape(slides.ShapeType.RECTANGLE,
rect.x + x, rect.y + y, rect.width, rect.height)
shape.fill_format.fill_type = slides.FillType.NO_FILL
shape.line_format.fill_format.solid_fill_color.color = draw.Color.yellow
shape.line_format.fill_format.fill_type = slides.FillType.SOLID
for portion in para.portions:
if "0" in portion.text:
rect = portion.get_rect()
shape = pres.slides[0].shapes.add_auto_shape(slides.ShapeType.RECTANGLE,
rect.x + x, rect.y + y, rect.width, rect.height)
shape.fill_format.fill_type = slides.FillType.NO_FILL
Preguntas frecuentes
¿En qué unidades se devuelven las coordenadas de un párrafo y de las porciones de texto? En puntos, donde 1 pulgada = 72 puntos. Esto se aplica a todas las coordenadas y dimensiones de la diapositiva.
¿El ajuste de línea afecta los límites de un párrafo? Sí. Si el wrapping está habilitado en el TextFrame, el texto se ajusta para quedar dentro del ancho del área, lo que modifica los límites reales del párrafo.
¿Se pueden mapear de forma fiable las coordenadas del párrafo a píxeles en la imagen exportada? Sí. Convierta puntos a píxeles usando: pixels = points × (DPI / 72). El resultado depende del DPI seleccionado para el renderizado/exportación.
¿Cómo obtener los parámetros de formato “effective” del párrafo, teniendo en cuenta la herencia de estilo? Utilice la estructura de datos de formato de párrafo effective; devuelve los valores finales consolidados para sangrías, espaciado, ajuste, RTL y más.