كيفية إضافة أشكال إلى 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.