Pobierz granice akapitu z prezentacji w Pythonie
Przegląd
Ten artykuł wyjaśnia, jak uzyskać granice, rozmiar i współrzędne akapitów w Aspose.Slides. Pokazuje, jak pobrać prostokąt akapitu z TextFrame przy użyciu Paragraph.get_rect, jak uzyskać współrzędne akapitu wewnątrz ramki tekstowej komórki tabeli oraz podkreśla ważne szczegóły, takie jak jednostki miary, wpływ zawijania tekstu na granice, konwersję na piksele i efektywne wartości formatowania akapitu.
Pobierz prostokątne współrzędne akapitu
Użyj Paragraph.get_rect, aby uzyskać prostokąt ograniczający akapit.
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()
Pobierz rozmiar akapitu wewnątrz ramki tekstowej komórki tabeli
Aby uzyskać rozmiar i współrzędne Paragraph w ramce tekstowej komórki tabeli, użyj Paragraph.get_rect. Zwrócony prostokąt jest względem ramki tekstowej komórki tabeli, więc dodaj pozycję tabeli i offset komórki, gdy potrzebujesz współrzędnych na poziomie slajdu.
Poniższy przykład pobiera granice akapitu wewnątrz komórki tabeli i rysuje prostokąty na slajdzie, aby zwizualizować te granice:
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)
FAQ
W jakich jednostkach mierzone są współrzędne akapitu?
Są mierzone w punktach, gdzie 1 cal równa się 72 punktom. Dotyczy to wszystkich współrzędnych i wymiarów na slajdzie.
Czy zawijanie tekstu wpływa na granice akapitu?
Tak. Jeśli TextFrameFormat.wrap_text jest włączone dla TextFrame, tekst łamie się, aby dopasować się do szerokości obszaru, co zmienia rzeczywiste granice akapitu.
Czy można wiarygodnie przemapować współrzędne akapitu na piksele w wyeksportowanym obrazie?
Tak. Przelicz punkty na piksele, używając tej formuły: piksele = punkty x (DPI / 72). Wynik zależy od wybranego DPI dla renderowania lub eksportu.
Jak uzyskać „efektywne” parametry formatowania akapitu, uwzględniając dziedziczenie stylu?
Użyj effective paragraph formatting data structure; zwraca ona ostateczne, skonsolidowane wartości wcięć, odstępów, zawijania, RTL i innych.