Hämta styckesgränser från presentationer i Python
Översikt
Denna artikel förklarar hur man får gränserna, storleken och koordinaterna för stycken och textdelar i Aspose.Slides. Den visar hur man hämtar ett styckes rektangel i ett TextFrame med get_rect(), hur man får stycke- och delkoordinater inom en tabellcells textram, och lyfter fram viktiga detaljer såsom mätenheter, hur textomslag påverkar gränser, pixelkonvertering och effektiva formateringsvärden för stycke.
Hämta koordinater för stycke och del i TextFrame
Med Aspose.Slides för Python via .NET kan utvecklare nu hämta de rektangulära koordinaterna för Paragraph i styckeskollektionen i ett TextFrame. Det möjliggör också att hämta koordinaterna för en del i delkollektionen för ett stycke. I detta avsnitt kommer vi att demonstrera med ett exempel hur man får de rektangulära koordinaterna för ett stycke samt positionen för en del inom ett stycke.
Hämta rektangulära koordinater för stycke
Den nya metoden GetRect() har lagts till. Den möjliggör att hämta styckets avgränsningsrektangel.
import aspose.slides as slides
# Skapa ett Presentation-objekt som representerar en presentationsfil
with slides.Presentation(path + "Shapes.pptx") as presentation:
shape = presentation.slides[0].shapes[0]
textFrame = shape.text_frame
rect = textFrame.paragraphs[0].get_rect()
Hämta storlek på stycke och del i tabellcells textram
För att få storlek och koordinater för Portion eller Paragraph i en tabellcells textram kan du använda metoderna IPortion.GetRect och IParagraph.GetRect.
Detta exempel på kod demonstrerar den beskrivna operationen:
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
Vanliga frågor
I vilka enheter returneras koordinaterna för ett stycke och textdelar?
I punkter, där 1 tum = 72 punkter. Detta gäller för alla koordinater och dimensioner på bilden.
Påverkar ordbrytning ett styckes avgränsningar?
Ja. Om wrapping är aktiverat i TextFrame, bryts texten för att passa områdets bredd, vilket ändrar styckets faktiska avgränsningar.
Kan stycke‑koordinater på ett pålitligt sätt konverteras till pixlar i den exporterade bilden?
Ja. Konvertera punkter till pixlar med: pixels = points × (DPI / 72). Resultatet beror på den DPI som valts för renderingen/exporten.
Hur får jag de ”effektiva” formateringsparametrarna för ett stycke, med hänsyn till stilarv?
Använd den effective paragraph formatting data structure; den returnerar de slutgiltiga sammanställda värdena för indrag, avstånd, ombrytning, RTL och mer.