איך ליצור מצגות בפייתון

איך ליצור מצגות בפייתון

Aspose.Slides FOSS for Python מאפשר לך ליצור מצגות PowerPoint לחלוטין ב‑Python ללא תלות ב‑Microsoft Office. מדריך זה מציג כיצד ליצור מצגת חדשה, להוסיף שקפים וצורות, לעצב טקסט ולשמור את התוצאה.

מדריך שלב אחר שלב

שלב 1: התקן את החבילה

התקן את Aspose.Slides FOSS מ-PyPI. נדרש Python 3.10 או גרסה מאוחרת יותר.

pip install aspose-slides-foss

אמת את ההתקנה:

import aspose.slides_foss as slides
print("Aspose.Slides FOSS ready")

התלות lxml מותקנת אוטומטית. אין צורך בחבילות מערכת אחרות.


שלב 2: ייבא את המודולים הדרושים

ייבא את החבילה ואת ה‑enum SaveFormat הדרוש לשמירה.

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

כל הקבועים מסוג צורה נמצאים בaspose.slides_foss.ShapeType. כל סוגי העיצוב (FillType, NullableBool) גם הם בaspose.slides_foss.


שלב 3: צור מצגת

השתמש ב-slides.Presentation() כמנהל הקשר. מצגת חדשה מתחילה עם שקף ריק אחד.

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

with slides.Presentation() as prs:
    print(f"Slides in new presentation: {len(prs.slides)}")
    # work with prs inside this block
    prs.save("output.pptx", SaveFormat.PPTX)

חשוב: תמיד פתח והשתמש בPresentation בתוך בלוק with. אל תאחסן הפניה מחוץ להצהרת with; המשאבים לא ישוחררו כראוי.


שלב 4: גישה לשקף

השקף הראשון נמצא באינדקס 0. מצגת ריקה מכילה בדיוק שקף אחד.

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

with slides.Presentation() as prs:
    slide = prs.slides[0]  # zero-based index
    print(f"Slide at index 0: {slide}")
    prs.save("output.pptx", SaveFormat.PPTX)

שלב 5: הוסף צורה

השתמש בslide.shapes.add_auto_shape() כדי להוסיף AutoShape. הפרמטרים הם (shape_type, x, y, width, height) כולם בנקודות (1 נקודה = 1/72 אינץ׳; שקופית סטנדרטית היא 720 × 540 pt).

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 at (50, 50) with 400 wide and 120 tall
    shape = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 50, 400, 120)

    # Attach a text frame
    shape.add_text_frame("Hello from Aspose.Slides FOSS!")

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

שלב 6: שמירת המצגת

הקרא prs.save(path, SaveFormat.PPTX) לפני שהחסימה with יוצאת. PPTX הוא הפורמט הפלט היחיד הנתמך.

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

הקובץ נכתב באופן אטומי; אם מתרחשת שגיאה לפני קריאה זו, לא נוצר קובץ פלט.


דוגמה עובדת מלאה

הסקריפט הבא יוצר מצגת של שני שקפים עם צורת כותרת בשקף הראשון וטבלה בשקף השני.

import aspose.slides_foss as slides
from aspose.slides_foss import ShapeType, NullableBool, FillType
from aspose.slides_foss.drawing import Color
from aspose.slides_foss.export import SaveFormat

with slides.Presentation() as prs:
    # --- Slide 1: title shape ---
    slide1 = prs.slides[0]
    title = slide1.shapes.add_auto_shape(ShapeType.RECTANGLE, 40, 40, 640, 80)
    tf = title.add_text_frame("Q1 Results: Executive Summary")
    fmt = tf.paragraphs[0].portions[0].portion_format
    fmt.font_height = 32
    fmt.font_bold = NullableBool.TRUE
    fmt.fill_format.fill_type = FillType.SOLID
    fmt.fill_format.solid_fill_color.color = Color.from_argb(255, 0, 70, 127)

    # --- Slide 2: table ---
    prs.slides.add_empty_slide(prs.layout_slides[0])
    slide2 = prs.slides[1]
    table = slide2.shapes.add_table(40, 40, [200.0, 120.0, 120.0], [40.0, 40.0, 40.0])
    headers = ["Region", "Revenue", "Growth"]
    data = [
        ["North", "$1.2M", "+8%"],
        ["South", "$0.9M", "+4%"],
    ]
    for col, header in enumerate(headers):
        table.rows[0][col].text_frame.text = header
    for row_idx, row_data in enumerate(data):
        for col, cell_text in enumerate(row_data):
            table.rows[row_idx + 1][col].text_frame.text = cell_text

    prs.save("q1-results.pptx", SaveFormat.PPTX)

print("Saved q1-results.pptx")

בעיות נפוצות ותיקונים

ResourceWarning: unclosed Presentation

אתה יוצר מופע של Presentation ללא בלוק with. תמיד השתמש:

with slides.Presentation() as prs:
    ...

AttributeError: __enter__

אם אתה רואה את השגיאה הזו, בדוק שהייבאת aspose.slides_foss (לא aspose.slides). שם החבילה ב‑PyPI הוא aspose-slides-foss והייבוא בזמן ריצה הוא aspose.slides_foss.

TypeError: SaveFormat.PPTX is not callable

SaveFormat.PPTX הוא חבר enum, ולא פונקציה. השתמש בו כprs.save("file.pptx", SaveFormat.PPTX).


שאלות נפוצות

מהו גודל השקופית המוגדר כברירת מחדל?

Presentation() חדש יוצר שקופיות בגודל הסטנדרטי של 10 × 7.5 אינץ’ (720 × 540 נקודות). שינוי גודל השקופית עדיין אינו נתמך בגרסה זו.

האם אני יכול להוסיף יותר משקף אחד?

כן. קרא prs.slides.add_empty_slide(prs.layout_slides[0]) כדי להוסיף שקף ריק ולגשת אליו לפי אינדקס:

prs.slides.add_empty_slide(prs.layout_slides[0])
slide2 = prs.slides[1]

האם אני יכול לפתוח קובץ קיים ולהוסיף שקופיות?

כן:

with slides.Presentation("existing.pptx") as prs:
    prs.slides.add_empty_slide(prs.layout_slides[0])
    prs.save("existing.pptx", SaveFormat.PPTX)

לאילו פורמטים ניתן לשמור?

רק SaveFormat.PPTX נתמך. ייצוא ל‑PDF, HTML, SVG או תמונות אינו זמין בגרסה זו.


ראה גם

 עברית