كيفية إضافة أشكال إلى PowerPoint في Python

كيفية إضافة أشكال إلى PowerPoint في Python

Aspose.Slides FOSS for Python supports adding AutoShapes, Tables, Connectors, and PictureFrames to presentation slides. All shape types are added through the slide.shapes جمعية .

خطوة بخطوة دليل

الخطوة 1: قم بتثبيت الحزمة

pip install aspose-slides-foss

تحقق من التثبيت :

import aspose.slides_foss as slides
print("Ready")

الخطوة الثانية: إعداد عرض

دائما استخدام Presentation كمدير السياق.

import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat

with slides.Presentation() as prs:
    slide = prs.slides[0]
    # ... add shapes ...
    prs.save("output.pptx", SaveFormat.PPTX)

الخطوة 3: إضافة AutoShape

slide.shapes.add_auto_shape(shape_type, x, y, width, height) وضع شكل في موقف و حجم معين (كلها في نقاط). ShapeType لا يزال هناك اختيار الشكل.

import aspose.slides_foss as slides
from aspose.slides_foss import ShapeType
from aspose.slides_foss.export import SaveFormat

with slides.Presentation() as prs:
    slide = prs.slides[0]

    # Rectangle
    rect = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 50, 300, 100)
    rect.add_text_frame("Rectangle shape")

    # Ellipse
    ellipse = slide.shapes.add_auto_shape(ShapeType.ELLIPSE, 400, 50, 200, 100)
    ellipse.add_text_frame("Ellipse shape")

    prs.save("autoshapes.pptx", SaveFormat.PPTX)

الخطوة 4: إضافة طاولة

slide.shapes.add_table(x, y, col_widths, row_heights) إنشاء جدول في الموقف المحدد.أعلى الأعمدة العمودية وارتفاع الصفوف هي قوائم القيم النقطية.

import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat

with slides.Presentation() as prs:
    slide = prs.slides[0]

    col_widths = [150.0, 150.0, 150.0]
    row_heights = [40.0, 40.0, 40.0]
    table = slide.shapes.add_table(50, 200, col_widths, row_heights)

    # Set header row text
    headers = ["Product", "Units", "Revenue"]
    for col, text in enumerate(headers):
        table.rows[0][col].text_frame.text = text

    # Set data rows
    rows = [
        ["Widget A", "120", "$2,400"],
        ["Widget B", "85", "$1,700"],
    ]
    for row_idx, row_data in enumerate(rows):
        for col, text in enumerate(row_data):
            table.rows[row_idx + 1][col].text_frame.text = text

    prs.save("table.pptx", SaveFormat.PPTX)

الخطوة الخامسة: إضافة جهاز اتصال

يربط الاتصالات شكلين بصريًا.إنشاء الأشكال أولاً، ثم إضافة اتصال وتعيين نقاط البداية والنهاية للاتصال.

import aspose.slides_foss as slides
from aspose.slides_foss import ShapeType
from aspose.slides_foss.export import SaveFormat

with slides.Presentation() as prs:
    slide = prs.slides[0]

    box1 = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 100, 150, 60)
    box1.add_text_frame("Start")

    box2 = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 350, 100, 150, 60)
    box2.add_text_frame("End")

    conn = slide.shapes.add_connector(ShapeType.BENT_CONNECTOR3, 0, 0, 10, 10)
    conn.start_shape_connected_to = box1
    conn.start_shape_connection_site_index = 3  # right side of box1
    conn.end_shape_connected_to = box2
    conn.end_shape_connection_site_index = 1    # left side of box2

    prs.save("connector.pptx", SaveFormat.PPTX)

يتم عدد مؤشرات موقع الاتصال 0-3 لقطعة مستقيمة: أعلى = 0 ، اليسار = 1 ، أسفل = 2 ، اليمين = 3.


الخطوة 6: إضافة إطار صورة

قم بتجميع صورة وإضافتها إلى الشريط كأ PictureFrame.اقرأ أولاً بايتات الصورة، وأضفها إلى مجموعة الصور في العرض التقديمي، ثم قم بإنشاء الإطار.

import aspose.slides_foss as slides
from aspose.slides_foss import ShapeType
from aspose.slides_foss.export import SaveFormat

with slides.Presentation() as prs:
    with open("logo.png", "rb") as f:
        image_data = f.read()

    image = prs.images.add_image(image_data)

    slide = prs.slides[0]
    slide.shapes.add_picture_frame(
        ShapeType.RECTANGLE,  # bounding shape type
        50, 50,               # x, y in points
        200, 150,             # width, height in points
        image
    )

    prs.save("with-image.pptx", SaveFormat.PPTX)

مشكلات و تصحيحات مشتركة

يظهر الشكل خارج منطقة الشرائح المرئية

تبلغ الصفحات 960 × 540 نقطة حسب الافتراض. x أو y ما وراء هذه الحدود وضع الشكل خارج الستار. x < 960 و y < 540,و يضمن x + width <= 960 و y + height <= 540.

AttributeError: 'NoneType' object has no attribute 'text_frame'

add_auto_shape() إعادة تشكيل الكائن مباشرة.إذا رأيت None,تأكد من عدم إلغاء قيمة العائد.

نص الخلية في الجدول فارغ بعد التعيين

الممتلكات الصحيحة هي .text_frame.text ( لا ) .text في الخلية (الخلايا التي تصل إلى الخلا table.rows[row_index][col_index].text_frame.text = "value".


الأسئلة المتكررة

كم عدد الأشكال التي يمكنني إضافةها إلى الشرائح؟?

لا يوجد حد مكتبي يفرضه الحد العملي يعتمد على حجم الملف والقدرة على العرض لمشاهدة PPTX المستهدفة.

هل يمكنني تغيير وضع الشكل بعد إضافته؟?

نعم.الشكل العودة عن طريق add_auto_shape() لديها x, y, width,و ، و height الخصائص التي يمكنك إعدادها:

shape.x = 100
shape.y = 200
shape.width = 400
shape.height = 80

هل يمكنني إعداد لون الشكل (الحدود)؟?

نعم، من خلال shape.line_format:

from aspose.slides_foss.drawing import Color
shape.line_format.fill_format.solid_fill_color.color = Color.from_argb(255, 200, 0, 0)

هل يتم دعم الرسوم البيانية؟?

لا يتم تنفيذ الرسوم البيانية، SmartArt، و OLE الكائنات في هذا الإصدار. NotImplementedError.


انظر أيضا

 العربية