Získání ohraničení odstavců z prezentací v Pythonu
Přehled
Tento článek vysvětluje, jak získat ohraničení, velikost a souřadnice odstavců v Aspose.Slides. Ukazuje, jak pomocí Paragraph.get_rect získat obdélník odstavce z TextFrame, jak získat souřadnice odstavce uvnitř textového rámce buňky tabulky, a zdůrazňuje důležité podrobnosti, jako jsou jednotky měření, vliv zalamování textu na ohraničení, převod na pixely a hodnoty efektivního formátování odstavců.
Získání obdélníkových souřadnic odstavce
Použijte Paragraph.get_rect k získání ohraničujícího obdélníku odstavce.
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()
Získání velikosti odstavce uvnitř textového rámce buňky tabulky
Chcete‑li získat velikost a souřadnice Paragraph v textovém rámci buňky tabulky, použijte Paragraph.get_rect. Vrácený obdélník je relativní k textovému rámci buňky tabulky, takže pokud potřebujete souřadnice na úrovni snímku, přidejte pozici tabulky a offset buňky.
Následující příklad získá ohraničení odstavce uvnitř buňky tabulky a vykreslí obdélníky na snímku pro vizualizaci těchto ohraničení:
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)
Často kladené otázky
V jakých jednotkách jsou měřeny souřadnice odstavců?
Měří se v bodech, kde 1 palec odpovídá 72 bodům. Toto platí pro všechny souřadnice a rozměry na snímku.
Ovlivňuje zalamování textu ohraničení odstavce?
Ano. Pokud je pro TextFrame povoleno TextFrameFormat.wrap_text, text se zalomí tak, aby se vešel do šířky oblasti, což mění skutečné ohraničení odstavce.
Mohou být souřadnice odstavce spolehlivě převedeny na pixely v exportovaném obrázku?
Ano. Převod bodů na pixely provedete pomocí vzorce: pixely = body × (DPI / 72). Výsledek závisí na DPI zvoleném pro vykreslení nebo export.
Jak získám „efektivní“ parametry formátování odstavce s ohledem na dědičnost stylu?
Použijte effective paragraph formatting data structure; vrací konečné sloučené hodnoty pro odsazení, mezery, zalamování, RTL a další.