Cum să creați prezentări în Python

Cum să creați prezentări în Python

Aspose.Slides FOSS for Python vă permite să creați prezentări PowerPoint în întregime în Python, fără dependență de Microsoft Office. Acest ghid arată cum să creați o prezentare nouă, să adăugați diapozitive și forme, să formatați textul și să salvați rezultatul.

Ghid pas cu pas

Pasul 1: Instalați pachetul

Instalați Aspose.Slides FOSS de pe PyPI. Este necesar Python 3.10 sau o versiune ulterioară.

pip install aspose-slides-foss

Verificați instalarea:

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

Dependența lxml este instalată automat. Nu sunt necesare alte pachete de sistem.


Pasul 2: Importă modulele necesare

Importați pachetul și enumul SaveFormat necesar pentru salvare.

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

Toate constantele de tip formă se găsesc în aspose.slides_foss.ShapeType. Toate tipurile de formatare (FillType, NullableBool) se găsesc, de asemenea, în aspose.slides_foss.


Pasul 3: Creare prezentare

Folosiți slides.Presentation() ca manager de context. O prezentare nouă începe cu un singur diapozitiv gol.

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)

Important: Deschideți și utilizați întotdeauna Presentation în interiorul unui bloc with. Nu stocați o referință în afara declarației with; resursele nu vor fi eliberate corect.


Pasul 4: Accesarea unui diapozitiv

Primul diapozitiv se află la indexul 0. O prezentare goală are exact un diapozitiv.

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)

Pasul 5: Adaugă o formă

Utilizați slide.shapes.add_auto_shape() pentru a adăuga un AutoShape. Parametrii sunt (shape_type, x, y, width, height) toți în puncte (1 punct = 1/72 inch; diapozitivul standard este 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)

Pasul 6: Salvați prezentarea

Apelați prs.save(path, SaveFormat.PPTX) înainte ca blocul with să iasă. PPTX este singurul format de ieșire suportat.

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

Fișierul este scris atomic; dacă apare o eroare înainte de acest apel, nu se creează niciun fișier de ieșire.


Exemplu complet de lucru

Scriptul de mai jos creează o prezentare cu două diapozitive, cu o formă de titlu pe primul diapozitiv și un tabel pe al doilea.

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")

Probleme comune și soluții

ResourceWarning: unclosed Presentation

Instanțiați Presentation fără un bloc with. Folosiți întotdeauna:

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

AttributeError: __enter__

Dacă vezi această eroare, verifică că ai importat aspose.slides_foss (nu aspose.slides). Numele pachetului pe PyPI este aspose-slides-foss și importul la runtime este aspose.slides_foss.

TypeError: SaveFormat.PPTX is not callable

SaveFormat.PPTX este un membru de enum, nu o funcție. Folosiți-l ca prs.save("file.pptx", SaveFormat.PPTX).


Întrebări frecvente

Care este dimensiunea implicită a diapozitivului?

Un nou Presentation() creează diapozitive la dimensiunea standard de 10 × 7,5 inci (720 × 540 puncte). Modificarea dimensiunii diapozitivului nu este încă suportată în această ediție.

Pot adăuga mai mult de un slide?

Da. Apelă prs.slides.add_empty_slide(prs.layout_slides[0]) pentru a adăuga un diapozitiv gol și a-l accesa prin index:

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

Pot să deschid un fișier existent și să adaug diapozitive?

Da:

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

În ce formate pot salva?

Doar SaveFormat.PPTX este suportat. Exportul în PDF, HTML, SVG sau imagini nu este disponibil în această ediție.


Vezi și

 Română