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
| Formats | Extension | Lire | Écrire |
|---|---|---|---|
| PPTX | .pptx | ✓ | ✓ |
| PPT | .Pt | — | Planifié |
| PPSX | .ppsx | — | Planifié |
| PPTM | .pptm | — | Planifié |
| POTX | .Le Potx | — | Planifié |
| ODP | .ODP | — | Planifié |
| — | Planifié | ||
| HTML | .html | — | Planifié |
| HTML5 | .html | — | Planifié |
| TIFF | .TIFF | — | Planifié |
| GIF | .GIF | — | Planifié |
| XPS | .xps | — | Planifié |
| FODP | .FODP | — | Planifié |
| MD | .Md | — | Planifié |
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.