Ottenere i limiti del paragrafo dalle presentazioni in Python
Panoramica
Questo articolo spiega come ottenere i limiti, le dimensioni e le coordinate di paragrafi e porzioni di testo in Aspose.Slides. Mostra come recuperare il rettangolo di un paragrafo in un TextFrame utilizzando get_rect(), come ottenere le coordinate del paragrafo e della porzione all’interno di una cella di tabella e mette in evidenza dettagli importanti come le unità di misura, l’effetto dell’andare a capo del testo sui limiti, la conversione in pixel e i valori di formattazione del paragrafo effettivi.
Ottenere le Coordinate di Paragrafo e Porzione in TextFrame
Utilizzando Aspose.Slides per Python tramite .NET, gli sviluppatori possono ora ottenere le coordinate rettangolari per il Paragraph all’interno della collezione di paragrafi di un TextFrame. Consente anche di ottenere le coordinate della porzione all’interno della collezione di porzioni di un paragrafo. In questo argomento, dimostreremo, con l’aiuto di un esempio, come ottenere le coordinate rettangolari per il paragrafo insieme alla posizione della porzione all’interno di un paragrafo.
Ottenere le Coordinate Rettangolari del Paragrafo
È stato aggiunto il nuovo metodo GetRect(). Consente di ottenere il rettangolo dei limiti del paragrafo.
import aspose.slides as slides
# Instanziare un oggetto Presentation che rappresenta un file di presentazione
with slides.Presentation(path + "Shapes.pptx") as presentation:
shape = presentation.slides[0].shapes[0]
textFrame = shape.text_frame
rect = textFrame.paragraphs[0].get_rect()
Ottenere le dimensioni del paragrafo e della porzione all’interno del text frame di una cella di tabella
Per ottenere le dimensioni e le coordinate della Porzione o del Paragrafo in un text frame di una cella di tabella, è possibile utilizzare i metodi IPortion.GetRect e IParagraph.GetRect.
Questo codice di esempio dimostra l’operazione descritta:
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
FAQ
In quali unità vengono restituite le coordinate per un paragrafo e le porzioni di testo?
In punti, dove 1 pollice = 72 punti. Questo vale per tutte le coordinate e le dimensioni nella diapositiva.
Il ritorno a capo del testo influisce sui limiti di un paragrafo?
Sì. Se avvolgimento è abilitato nel TextFrame, il testo si interrompe per adattarsi alla larghezza dell’area, modificando i limiti reali del paragrafo.
Le coordinate del paragrafo possono essere mappate in modo affidabile a pixel nell’immagine esportata?
Sì. Converti i punti in pixel usando: pixel = punti × (DPI / 72). Il risultato dipende dal DPI scelto per il rendering/esportazione.
Come ottenere i parametri di formattazione “effettivi” del paragrafo, tenendo conto dell’ereditarietà dello stile?
Utilizza la struttura dati di formattazione del paragrafo effettiva; restituisce i valori finali consolidati per rientri, spaziatura, avvolgimento, RTL e altro.