Python'da Sunumlardan Paragraf Sınırlarını Alın

Genel Bakış

Bu makale, Aspose.Slides içinde paragrafların ve metin bölümlerinin sınırlarını, boyutlarını ve koordinatlarını nasıl alacağını açıklar. get_rect() kullanarak bir TextFrame içindeki paragrafın dikdörtgenini nasıl alınacağını, tablo hücresi metin çerçevesi içinde paragraf ve bölüm koordinatlarını nasıl alacağını gösterir ve ölçü birimleri, metin kaydırmanın sınırlar üzerindeki etkisi, piksel dönüşümü ve etkili paragraf biçimlendirme değerleri gibi önemli ayrıntıları vurgular.

TextFrame içinde Paragraf ve Bölüm Koordinatlarını Almak

Aspose.Slides for Python via .NET kullanarak, geliştiriciler artık TextFrame’in paragraf koleksiyonundaki Paragraf için dikdörtgen koordinatlarını alabilir. Ayrıca bir paragraftaki bölüm koleksiyonundaki bölümün koordinatlarını almanıza da izin verir. Bu konuda, bir örnek yardımıyla paragrafın dikdörtgen koordinatlarını ve paragraf içindeki bölümün konumunu nasıl alacağınızı göstereceğiz.

Paragrafın Dikdörtgen Koordinatlarını Alın

Yeni GetRect() yöntemi eklendi. Paragraf sınırları dikdörtgenini almanıza olanak tanır.

import aspose.slides as slides

# Bir sunum dosyasını temsil eden Presentation nesnesi örneği oluşturur
with slides.Presentation(path + "Shapes.pptx") as presentation:
    shape = presentation.slides[0].shapes[0]
    textFrame = shape.text_frame
    rect = textFrame.paragraphs[0].get_rect()

Tablo hücresi metin çerçevesi içinde paragraf ve bölümün boyutunu al

Bir tablo hücresi metin çerçevesinde Portion veya Paragraph boyutunu ve koordinatlarını almak için IPortion.GetRect ve IParagraph.GetRect yöntemlerini kullanabilirsiniz.

Bu örnek kod, açıklanan işlemi gösterir:

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

SSS

Paragraf ve metin bölümlerinin koordinatları hangi birimlerde döndürülür?

Nokta (point) biriminde, 1 inç = 72 point olarak ölçülür. Bu, slayttaki tüm koordinat ve boyutlara uygulanır.

Kelime kaydırma bir paragrafın sınırlarını etkiler mi?

Evet. wrapping TextFrame içinde etkinleştirildiğinde, metin alan genişliğine sığacak şekilde bölünür ve bu da paragrafın gerçek sınırlarını değiştirir.

Paragraf koordinatları dışa aktarılan görüntüde piksellere güvenilir bir şekilde eşlenebilir mi?

Evet. Noktaları piksellere şu şekilde dönüştürün: pixels = points × (DPI / 72). Sonuç, render/ dışa aktarım için seçilen DPI değerine bağlıdır.

Stil kalıtımını göz önünde bulundurarak “etkili” paragraf biçimlendirme parametrelerini nasıl alabilirim?

effective paragraph formatting data structure kullanın; girintiler, aralıklar, kaydırma, RTL ve daha fazlası için son birleşik değerleri döndürür.