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ů a částí textu v Aspose.Slides. Ukazuje, jak pomocí get_rect() získat obdélník odstavce v TextFrame, jak získat souřadnice odstavce a části 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í odstavce.
Získání souřadnic odstavce a části v TextFrame
Pomocí Aspose.Slides pro Python přes .NET mohou vývojáři nyní získat obdélníkové souřadnice odstavce v kolekci odstavců TextFrame. Také umožňuje získat souřadnice části v kolekci částí odstavce. V tomto tématu ukážeme na příkladu, jak získat obdélníkové souřadnice odstavce spolu s pozicí části uvnitř odstavce.
Získání obdélníkových souřadnic odstavce
Byla přidána nová metoda GetRect(). Umožňuje získat obdélník ohraničení odstavce.
import aspose.slides as slides
# Vytvořte objekt Presentation, který představuje soubor prezentace
with slides.Presentation(path + "Shapes.pptx") as presentation:
shape = presentation.slides[0].shapes[0]
textFrame = shape.text_frame
rect = textFrame.paragraphs[0].get_rect()
Získání velikosti odstavce a části v textovém rámci buňky tabulky
Pro získání velikosti a souřadnic Portion nebo Paragraph v textovém rámci buňky tabulky můžete použít metody IPortion.GetRect a IParagraph.GetRect.
Tento ukázkový kód demonstruje popsanou operaci:
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
Často kladené otázky
V jakých jednotkách jsou vráceny souřadnice odstavce a částí textu?
V bodech, kde 1 palec = 72 bodů. Toto platí pro všechny souřadnice a rozměry na snímku.
Ovlivňuje zalamování textu ohraničení odstavce?
Ano. Pokud je wrapping povolen v TextFrame, text se zalomí tak, aby se vešel do šířky oblasti, což mění skutečné ohraničení odstavce.
Lze souřadnice odstavce spolehlivě převést na pixely v exportovaném obrázku?
Ano. Převod bodů na pixely provede: pixely = body × (DPI / 72). Výsledek závisí na DPI zvoleném pro vykreslování/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é konsolidované hodnoty pro odsazení, rozestupy, zalamování, RTL a další.