Inleiding

Deze gids toont hoe je PowerPoint presentaties programmatisch kunt maken, wijzigen en opslaan in Python met behulp van Aspose.Slides FOSS. De bibliotheek stelt je in staat om dia’s vanaf nul te bouwen, dia’s toe te voegen en opnieuw te ordenen, ze te vullen met vormen, tabellen en opgemaakte tekst, en het resultaat op te slaan als PPTX. Alle verwerking gebeurt in pure Python zonder afhankelijkheid van Microsoft Office of enige externe binary.

De bibliotheek is beschikbaar op PyPI als aspose-slides-foss onder de MIT-licentie. Installeer deze met pip, importeer hem, en begin binnen enkele regels code presentaties te bouwen. Of je nu rapportgeneratie automatiseert, een slide-deck-pipeline bouwt, of presentatie-output in een webapplicatie embedde, de API dekt het volledige spectrum: slide-collecties, master-/layout-dia’s, vorm-collecties, tekstkaders, vulformaten en exportopties.

Deze post loopt de kernfunctionaliteiten voor presentatiemanagement door — de klassen en methoden die je het meest zult gebruiken bij het werken met dia’s in Python.


Wat er inbegrepen is

Levenscyclus van de presentatie

De Presentation klasse is het toegangspunt. Maak een nieuw deck, bewerk de inhoud, en sla op als PPTX. Gebruik Presentation als een contextmanager met with om bestands-handles automatisch vrij te geven.

import io
from aspose.slides_foss import Presentation
from aspose.slides_foss.export import SaveFormat

with Presentation() as pres:
    # A new presentation starts with one blank slide
    print("Slides:", len(pres.slides))  # 1

    # Save to a file
    pres.save("output.pptx", SaveFormat.PPTX)

    # Or save to a stream
    buf = io.BytesIO()
    pres.save(buf, SaveFormat.PPTX)

Dia-collectie bewerkingen

SlideCollection stelt je in staat om dia’s toe te voegen, in te voegen, te klonen, te verwijderen en opnieuw te rangschikken. len(pres.slides) geeft de huidige telling weer na elke wijziging.

from aspose.slides_foss import Presentation, ShapeType

with Presentation() as pres:
    layout = pres.layout_slides[0]

    # Add a blank slide using the first layout
    pres.slides.add_empty_slide(layout)

    # Insert at a specific position
    pres.slides.insert_empty_slide(1, layout)

    # Clone an existing slide (shapes are copied)
    pres.slides[0].shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 50, 200, 100)
    pres.slides.add_clone(pres.slides[0])

    print("Total slides:", len(pres.slides))  # 4

    # Remove by index
    pres.slides.remove_at(3)

Vormen en AutoShapes

Voeg rechthoeken, ellipsen, driehoeken en andere geometrische vormen toe aan elke dia via ShapeCollection.add_auto_shape(). Elke vorm biedt positie-, grootte-, rotatie- en vul-eigenschappen die behouden blijven gedurende opslaan/herladen cycli.

from aspose.slides_foss import Presentation, ShapeType

with Presentation() as pres:
    slide = pres.slides[0]
    slide.shapes.clear()

    rect = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 50, 300, 150)
    rect.rotation = 15

    ellipse = slide.shapes.add_auto_shape(ShapeType.ELLIPSE, 400, 50, 200, 200)

    # Reorder z-index
    slide.shapes.reorder(0, ellipse)
    print("Front shape:", slide.shapes[0].shape_type)  # ELLIPSE

Tabellen

Maak gegevenstabellen met ShapeCollection.add_table(), stel celtekst in via TextFrame, voeg cellen samen en pas randopmaak toe. Rijhoogtes en kolombreedtes komen overeen met de waarden die je aan de constructor doorgeeft.

from aspose.slides_foss import Presentation, FillType
from aspose.slides_foss.drawing import Color

with Presentation() as pres:
    slide = pres.slides[0]
    slide.shapes.clear()

    table = slide.shapes.add_table(50, 50, [150, 150, 150], [40, 40, 40])

    # Merge two cells in the second row
    table.merge_cells(table.rows[1][0], table.rows[1][1], False)

    # Style the header row with a bottom border
    for col_idx in range(len(table.columns)):
        fmt = table.rows[0][col_idx].cell_format
        fmt.border_bottom.fill_format.fill_type = FillType.SOLID
        fmt.border_bottom.fill_format.solid_fill_color.color = Color.from_argb(255, 0, 0, 0)
        fmt.border_bottom.width = 2

Master- en lay-outdia’s

Elke presentatie heeft een hiërarchie van masterdia’s en lay-outdia’s. Toegang tot deze via Presentation.masters en Presentation.layout_slides om consistente opmaak toe te passen over je hele deck.

from aspose.slides_foss import Presentation

with Presentation() as pres:
    master = pres.masters[0]
    print("Master layouts:", len(master.layout_slides))

    # Pick a layout by type
    from aspose.slides_foss import SlideLayoutType
    title_layout = pres.layout_slides.get_by_type(SlideLayoutType.TITLE)
    if title_layout:
        pres.slides.add_empty_slide(title_layout)

Documenteigenschappen

Lees en schrijf ingebouwde metadata zoals titel, auteur en onderwerp via het DocumentProperties object. Stel een van deze eigenschappen in voordat je save() aanroept — ze worden ingebed in de PPTX-metadata en zijn leesbaar voor downstream-tools:

from aspose.slides_foss import Presentation
from aspose.slides_foss.export import SaveFormat

with Presentation() as pres:
    props = pres.document_properties
    props.title = "Quarterly Report"
    props.author = "Engineering"
    props.subject = "Q1 2026 Results"

    pres.save("report.pptx", SaveFormat.PPTX)

Snelstart

Voer de volgende pip-opdracht uit om Aspose.Slides FOSS voor Python te installeren vanaf PyPI:

pip install aspose-slides-foss

Het volgende voorbeeld maakt een presentatie met een titelvorm, een gegevenstabel en een opvulling, en slaat deze vervolgens op als PPTX:

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

with Presentation() as pres:
    slide = pres.slides[0]
    slide.shapes.clear()

    # Add a title shape
    title = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 30, 860, 80)
    tf = title.add_text_frame("Quarterly Report")
    tf.paragraphs[0].portions[0].portion_format.font_bold = NullableBool.TRUE
    tf.paragraphs[0].portions[0].portion_format.font_height = 28

    # Add a data table
    table = slide.shapes.add_table(50, 150, [200, 200, 200], [40, 40, 40])
    headers = ["Region", "Revenue", "Growth"]
    for i, h in enumerate(headers):
        table.rows[0][i].text_frame.text = h

    # Fill the title shape background
    title.fill_format.fill_type = FillType.SOLID
    title.fill_format.solid_fill_color.color = Color.from_argb(255, 0, 51, 102)

    # Save as PPTX
    pres.save("report.pptx", SaveFormat.PPTX)

Ondersteunde formaten

FormaatExtensieLezenSchrijven
PPTX.pptx✓✓
PPT.ppt—Planned
PPSX.ppsx—Planned
PPTM.pptm—Planned
POTX.potx—Planned
ODP.odp—Planned
PDF.pdf—Planned
HTML.html—Planned
HTML5.html—Planned
TIFF.tiff—Planned
GIF.gif—Planned
XPS.xps—Planned
FODP.fodp—Planned
MD.md—Planned

Opmerking: PPTX lezen en schrijven zijn volledig geïmplementeerd. Andere SaveFormat waarden (PPT, ODP, PDF, enz.) zijn gepland voor toekomstige releases; ze doorgeven aan save() produceert momenteel PPTX-uitvoer.


Open Source & Licenties

Aspose.Slides FOSS voor Python wordt uitgebracht onder de MIT-licentie. Je kunt het gebruiken in persoonlijke, academische en commerciële projecten zonder beperkingen. De broncode is beschikbaar op GitHub en het pakket is gepubliceerd op PyPI.


Aan de slag

Gerelateerde bronnen