Introduction

Ce guide montre comment créer, modifier et enregistrer des présentations PowerPoint de manière programmée dans Python à l’aide d’Aspose.Slides FOSS. La bibliothèque vous permet de construire des slides à partir de la déchirure, ajouter et réorder les slids, les populer avec des formes, tables et texte formaté, et sauvegarder le résultat pour PPTX. Toutes les traitements se produisent en pure Pythone sans dépendance sur Microsoft Office ou tout binaire extérieur.

La bibliothèque est disponible sur Pypi comme aspose-slides-foss sous la licence MIT. Installation Il avec pip, l’importer, et commencer à construire des présentations dans quelques lignes de code. Vous êtes en génération automatique de rapports, construire un pipeline de déchets ou intégrer la sortie de présentation dans une application web, l’API couvre la surface complète: slide collections, master/layout slides, collecties de formes, cadres texte, formats de remplissage et Options d’exportation.

Ce post passe par les capacités de gestion de présentation et de base – les classes et méthodes que vous utilisez le plus lors du travail avec des slides en Python.


Ce qui est inclus

Présentation du cycle de vie

Le Presentation classe est le point d’entrée. Créer un nouveau plafond, manipuler ses contenus et enregistrer à PPTX. Utilisez Presentation En tant que gestionnaire de contexte, avec with Réserver les fichiers automatiquement.

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)

Opérations de collecte Slide

SlideCollection vous permet d’ajouter, de mettre, cloner, supprimer et réorder les slides. len(pres.slides) Il reflète le nombre actuel après chaque changement.

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)

Formes et AutoShapes

Ajouter des rectangles, les ellipses, le triangle et d’autres formes géométriques à n’importe quel slide via ShapeCollection.add_auto_shape().Chaque forme expose la position, la taille, le tournage, et remplir les propriétés qui persistent au cours des cycles de sauvegarde/reload.

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

Tableau

Créer des tables de données avec ShapeCollection.add_table(),- Créer un texte via cellule TextFrame, fusion des cellules, et appliquer la formatisation de frontière. hauteur rouleau et colonne Les ampleurs correspondent aux valeurs que vous passez au constructeur.

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 et Layout Slides

Chaque présentation a une hiérarchie des slides maîtres et des Slides de layout. par le Presentation.masters et Presentation.layout_slides Pour appliquer de manière cohérente Formater sur votre déck.

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)

Propriétés de document

Lire et écrire des métadonnées intégrées telles que le titre, l’auteur et le sujet à travers la DocumentProperties Objet. définir l’une de ces propriétés avant d’appeler save() - sont intégrés dans les métadonnées PPTX et lisibles par des outils de descente :

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)

Démarrage rapide

Exécuter le commandement suivant pour installer Aspose.Slides FOSS pour Python à partir de PyPI:

pip install aspose-slides-foss

L’exemple suivant crée une présentation avec un titre, une table de données et un remplissage, puis le sauvegarde à 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)

Formats soutenus

FormatsExtensionLireÉcrire
PPTX.pptx
PPT.PtPlanifié
PPSX.ppsxPlanifié
PPTM.pptmPlanifié
POTX.Le PotxPlanifié
ODP.ODPPlanifié
PDF.pdfPlanifié
HTML.htmlPlanifié
HTML5.htmlPlanifié
TIFF.TIFFPlanifié
GIF.GIFPlanifié
XPS.xpsPlanifié
FODP.FODPPlanifié
MD.MdPlanifié

Note : PPTX lecture et écriture sont pleinement mis en œuvre. SaveFormat les valeurs (PPT, ODP, PDF, etc.) sont prévues pour les publications futures; leur transmission à la save() Il produit actuellement des produits PPTX.


Source ouverte et licence

Aspose.Slides FOSS for Python is released under the MIT license. You can use it in des projets personnels, académiques et commerciaux sans restrictions. le code source est Disponible sur GitHub Le package est publié sur PyPI.


Pour commencer

Ressources associées