Wie man Präsentationen in Python erstellt

Wie man Präsentationen in Python erstellt

Aspose.Slides FOSS for Python lets you create PowerPoint presentations entirely in Python with no dependency on Microsoft Office. This guide shows how to create a new presentation, add slides and shapes, format text, and save the result.

Schritt für Schritte

Schritt 1: Installieren des Pakets

Installieren Sie Aspose.Slides FOSS von PyPI. Python 3.10 oder höher ist erforderlich.

pip install aspose-slides-foss

Die Installation überprüfen:

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

Die lxml Die Abhängigkeit wird automatisch installiert. Keine anderen Systempakete sind erforderlich.


Schritt 2: Importieren der erforderlichen Module

Importieren Sie die Verpackung und den SaveFormat Ich brauche sie zum Rettung.

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

Alle Konstanten des Formtyps leben in aspose.slides_foss.ShapeType.Alle Formatierungstypen (FillType, NullableBool) sind auch in den Mitgliedstaaten zu finden. aspose.slides_foss.


Schritt 3: Erstellen Sie eine Präsentation

Verwendung slides.Presentation() Eine neue Präsentation beginnt mit einer leeren Folie.

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)

Wichtig: Immer offen und verwenden. Presentation Innen ein with Verzeichnis der Daten, die in einem anderen Bereich als dem des with Die Ressourcen werden nicht korrekt freigegeben.


Schritt 4: Auf eine Folie zugreifen

Die erste Folie ist bei Index 0. Eine leere Präsentation hat genau eine Folio.

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)

Schritt 5: Fügen Sie eine Form hinzu

Verwendung slide.shapes.add_auto_shape() Die Parameter sind: (shape_type, x, y, width, height) alle in Punkten (1 Punkt = 1/72 Zoll; Standarddiagramm ist 960 × 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)

Schritt 6: Speichern Sie die Präsentation

Rufen Sie an . prs.save(path, SaveFormat.PPTX) vor dem with PPTX ist das einzige unterstützte Ausgabeformat.

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

Die Datei wird atomar geschrieben; wenn vor diesem Aufruf ein Fehler auftritt, wird keine Ausgabedatei erstellt.


Vollständiges Arbeitsbeispiel

Das folgende Skript erstellt eine zweischichtige Präsentation mit einer Titelform auf der ersten Folie und einem Tisch auf dem zweiten.

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

Häufige Probleme und Lösungen

ResourceWarning: unclosed Presentation

Sie sind instanziatorisch . Presentation ohne eine with Verwenden Sie immer:

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

AttributeError: __enter__

Wenn Sie diesen Fehler sehen, überprüfen Sie die Import- aspose.slides_foss (nicht in der EU) aspose.slides) Der Paketname auf PyPI lautet: aspose-slides-foss und der Laufzeitimport ist: aspose.slides_foss.

TypeError: SaveFormat.PPTX is not callable

SaveFormat.PPTX ist ein enum Mitglied, keine Funktion. Verwenden Sie es als prs.save("file.pptx", SaveFormat.PPTX).


Häufig gestellte Fragen

Was ist die Standard-Slidegröße?

Eine neue Presentation() erstellt Diapositive mit der Standard-Widescreen-Größe 16: 9 (960 × 540 Punkte). Die Änderung der Diapothekengrößen wird in dieser Ausgabe noch nicht unterstützt.

Kann ich mehr als eine Folie hinzufügen?

Ja, rufen Sie an. prs.slides.add_empty_slide(prs.layout_slides[0]) Ein leerer Diagramm hinzuzufügen und nach Index zugänglich zu machen:

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

Kann ich eine vorhandene Datei öffnen und Bilder hinzufügen?

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

In welche Formate kann ich speichern?

Nur: SaveFormat.PPTX wird unterstützt. Export in PDF, HTML, SVG oder Bilder ist nicht verfügbar.


Siehe auch:

 Deutsch