Ottenere i limiti dei paragrafi dalle presentazioni in Python
Panoramica
Questo articolo spiega come ottenere i limiti, le dimensioni e le coordinate dei paragrafi in Aspose.Slides. Mostra come recuperare un rettangolo del paragrafo da un TextFrame utilizzando Paragraph.get_rect, come ottenere le coordinate del paragrafo all’interno di un text frame di cella di tabella e evidenzia dettagli importanti come le unità di misura, l’effetto del ritorno a capo sul limite, la conversione in pixel e i valori di formattazione del paragrafo effettiva.
Ottenere le coordinate rettangolari di un paragrafo
Utilizza Paragraph.get_rect per ottenere il rettangolo di delimitazione di un paragrafo.
import aspose.slides as slides
with slides.Presentation("Shapes.pptx") as presentation:
slide = presentation.slides[0]
shape = slide.shapes[0]
paragraph = shape.text_frame.paragraphs[0]
rectangle = paragraph.get_rect()
Ottenere le dimensioni di un paragrafo all’interno di un TextFrame di cella di tabella
Per ottenere le dimensioni e le coordinate di un Paragraph in un text frame di cella di tabella, usa Paragraph.get_rect. Il rettangolo restituito è relativo al text frame della cella di tabella, quindi aggiungi la posizione della tabella e l’offset della cella quando ti servono coordinate a livello di diapositiva.
L’esempio seguente ottiene i limiti del paragrafo all’interno di una cella di tabella e disegna rettangoli sulla diapositiva per visualizzare tali limiti:
import aspose.slides as slides
import aspose.pydrawing as draw
with slides.Presentation("source.pptx") as presentation:
slide = presentation.slides[0]
table = slide.shapes[0]
cell = table.rows[1][1]
cell_x = table.x + cell.offset_x
cell_y = table.y + cell.offset_y
for paragraph in cell.text_frame.paragraphs:
if paragraph.text == "":
continue
paragraph_rectangle = paragraph.get_rect()
paragraph_rectangle_x = paragraph_rectangle.x + cell_x
paragraph_rectangle_y = paragraph_rectangle.y + cell_y
paragraph_bounds_shape = slide.shapes.add_auto_shape(
slides.ShapeType.RECTANGLE,
paragraph_rectangle_x,
paragraph_rectangle_y,
paragraph_rectangle.width,
paragraph_rectangle.height)
paragraph_bounds_shape.fill_format.fill_type = slides.FillType.NO_FILL
paragraph_bounds_shape.line_format.fill_format.solid_fill_color.color = draw.Color.yellow
paragraph_bounds_shape.line_format.fill_format.fill_type = slides.FillType.SOLID
presentation.save("output.pptx", slides.export.SaveFormat.PPTX)
FAQ
In quali unità sono misurate le coordinate del paragrafo?
Sono misurate in punti, dove 1 pollice corrisponde a 72 punti. Questo vale per tutte le coordinate e dimensioni nella diapositiva.
Il ritorno a capo del testo influisce sui limiti di un paragrafo?
Sì. Se TextFrameFormat.wrap_text è abilitato per il TextFrame, il testo viene interrotto per adattarsi alla larghezza dell’area, il che modifica i limiti reali del paragrafo.
È possibile mappare in modo affidabile le coordinate del paragrafo in pixel nell’immagine esportata?
Sì. Converti i punti in pixel usando questa formula: pixel = punti x (DPI / 72). Il risultato dipende dal DPI scelto per il rendering o l’esportazione.
Come ottenere i parametri di formattazione “effettiva” del paragrafo, tenendo conto dell’ereditarietà di stile?
Utilizza la effective paragraph formatting data structure; restituisce i valori finali consolidati per rientri, spaziature, a capo, RTL e altro.