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 i Aspose.Slides. Den visar hur man hämtar en styckerektangel från en TextFrame genom att använda Paragraph.get_rect, hur man får styckekoordinater i en tabellcells textram, och lyfter fram viktiga detaljer som mätenheter, effekten av textbrytning på gränser, pixelkonvertering och effektiva styckeformatvärden.
Hämta rektangulära koordinater för ett stycke
Använd Paragraph.get_rect för att få den omgivande rektangeln för ett stycke.
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()
Hämta storleken på ett stycke i en tabellcells TextFrame
För att få storlek och koordinater för ett Paragraph i en tabellcells textram, använd Paragraph.get_rect. Den returnerade rektangeln är relativ till tabellcellens textram, så lägg till tabellens position och cellens förskjutning när du behöver koordinater på bildnivå.
Följande exempel hämtar styckets gränser i en tabellcell och ritar rektanglar på bilden för att visualisera dessa gränser:
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)
Vanliga frågor
I vilka enheter mäts styckekoordinater?
De mäts i punkter, där 1 tum motsvarar 72 punkter. Detta gäller för alla koordinater och mått på bilden.
Påverkar ordbrytning ett styckes gränser?
Ja. Om TextFrameFormat.wrap_text är aktiverat för TextFrame, bryts texten för att passa områdets bredd, vilket förändrar styckets faktiska gränser.
Kan styckekoordinater på ett tillförlitligt sätt mappas till pixlar i den exporterade bilden?
Ja. Konvertera punkter till pixlar med denna formel: pixlar = punkter x (DPI / 72). Resultatet beror på vilken DPI som valts för renderingen eller exporten.
Hur får jag de “effektiva” styckeformatparametrarna med hänsyn till stilarv?
Använd effective paragraph formatting data structure; den returnerar de slutgiltiga konsoliderade värdena för indrag, avstånd, radbrytning, RTL och mer.