الحصول على حدود الفقرة من العروض التقديمية في بايثون

الحصول على إحداثيات الفقرة والجزء داخل TextFrame

باستخدام Aspose.Slides للـ Python عبر .NET، يمكن للمطورين الآن الحصول على إحداثيات المستطيل للفقرة داخل مجموعة الفقرات في TextFrame. كما يتيح لك الحصول على إحداثيات الجزء داخل مجموعة الأجزاء لفقرة. في هذا الموضوع، سنشرح بمساعدة مثال كيفية الحصول على إحداثيات المستطيل للفقرة مع موضع الجزء داخل الفقرة.

الحصول على إحداثيات المستطيل للفقرة

تمت إضافة الطريقة الجديدة GetRect(). تتيح الحصول على مستطيل حدود الفقرة.

import aspose.slides as slides

# إنشاء كائن Presentation يمثل ملف عرض تقديمي
with slides.Presentation(path + "Shapes.pptx") as presentation:
    shape = presentation.slides[0].shapes[0]
    textFrame = shape.text_frame
    rect = textFrame.paragraphs[0].get_rect()

الحصول على حجم الفقرة والجزء داخل إطار نص خلية الجدول

للحصول على حجم وإحداثيات Portion أو Paragraph داخل إطار نص خلية جدول، يمكنك استخدام طريقتي IPortion.GetRect وIParagraph.GetRect.

يعرض كود العينة العملية الموضحة:

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

FAQ

بأي وحدات يتم إرجاع الإحداثيات للفقرة وأجزاء النص؟

بالنقاط، حيث 1 بوصة = 72 نقطة. ينطبق هذا على جميع الإحداثيات والأبعاد في الشريحة.

هل يؤثر التفاف النص على حدود الفقرة؟

نعم. إذا تم تمكين wrapping في TextFrame، يتم كسر النص لتناسب عرض المنطقة، مما يغير حدود الفقرة الفعلية.

هل يمكن تعيين إحداثيات الفقرة إلى بكسلات في الصورة المصدرة بشكل موثوق؟

نعم. احول النقاط إلى بكسلات باستخدام: pixels = points × (DPI / 72). النتيجة تعتمد على DPI المختار للعرض/التصدير.

كيف أحصل على معلمات تنسيق الفقرة “الفعّالة”، مع مراعاة وراثة النمط؟

استخدم effective paragraph formatting data structure; فهو يُعيد القيم النهائية المجمعة للمسافات البادئة، التباعد، الالتفاف، RTL، والمزيد.