Introducció
Aspose.Slides FOSS for Python gives you full control over the PowerPoint presentation cicle de vida crear coberts des del zero, afegir i reordenar diapositives, omplir-les amb formes, taules i text formatat, i guardant el resultat en PPTX, ODP, PDF o Tot això succeeix en Python pur sense dependència de la programació. Microsoft Office o qualsevol sistema binari extern.
La biblioteca està disponible en PyPI com a: aspose-slides-foss sota la llicència MIT. Instal·lar amb el pip, importar-lo, i començar a construir presentacions en unes poques línies de codi. estàs automatizant la generació de informes, construint un pipeline d’eslides o incrustant presentació en una aplicació web, l’API cobreix tota la superfície: diapositiva col·leccions, diapositives màsters/de disseny, col•lecció de formes, marcs de text, formats d’ompliment i opcions d’exportació.
Aquest post fa un recorregut a través de les capacitats bàsiques de gestió de presentacions les classes i mètodes que més utilitzaràs quan treballes amb diapositives en Python.
Què inclou?
Presentació Cicle de vida
El Presentation Crear una nova coberta, manipular el seu contingut., les presentacions donen suport al protocol de gestió de contextos, Així que els recursos es lliuren automàticament.
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)
Operacions de recollida d’eslides
SlideCollection permet afegir, inserir i clonar diapositives. Cada diapasó és una versió de la pàgina web que s’utilitza per a crear un nou format d’una diapausa. l’operació actualitza l ‘índex intern de manera que len(pres.slides) sempre reflecteix el el recompte actual.
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 i AutoFormes
Afegir rectangles, el·lipses, triangals i altres formes geomètriques a qualsevol diapositiva via ShapeCollection.add_auto_shape().Cada forma mostra la posició, mida i rotació., i les propietats de rellotge que persisteixen al llarg dels cicles d’estalvi/recarrega.
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
Taules
Crear taules de dades amb: ShapeCollection.add_table(), text de cèl·lula via TextFrame, fusionar cèl·lules i aplicar el formatatge de la frontera. Altres columnes i altures de línia Les llargues coincideixen amb els valors que passem al constructor.
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])
table.rows[0][0].text_frame.text = "Name"
table.rows[0][1].text_frame.text = "Role"
table.rows[0][2].text_frame.text = "Team"
# Merge two cells in the second row
table.merge_cells(table.rows[1][0], table.rows[1][1], False)
# Style the header row borders
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.black
fmt.border_bottom.width = 2
Diapositives de disseny i maquetació
Cada presentació té una jerarquia de diapositives mestres i diapasos d’arranjament. Accedeix-hi a través de Presentation.masters i de la Presentation.layout_slides aplicar de manera coherent formatatge a través de la seva plataforma.
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)
Propietats del document
Llegir i escriure metadades integrades com el títol, l’autor i l ‘assignatura a través de la DocumentProperties object. Les propietats persisteixen en el fitxer guardat.
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)
Inici ràpid
pip install aspose-slides-foss
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 suportats
| Format de la pàgina | Extensió | Llegeix. | Escriure |
|---|---|---|---|
| PPTX | .pptx | ✓ | ✓ |
| PPT | .ppt | — | Planificat |
| PPSX | .ppsx | — | Planificat |
| PPTM | .pptm | — | Planificat |
| POTX | .potx | — | Planificat |
| ODP | .odp | — | Planificat |
| — | Planificat | ||
| HTML | .html | — | Planificat |
| HTML5 | .html | — | Planificat |
| TIFF | .Tif. | — | Planificat |
| GIF | .gif | — | Planificat |
| XPS | .xps | — | Planificat |
| FODP | .fodp | — | Planificat |
| MD | .md | — | Planificat |
Nota: Actualment només s’implementa l’exportació PPTX. Existen altres valors de format en el sistema d’impressió i la seva configuració a través del programa de codi. SaveFormat enum per a la compatibilitat amb l’avantguarda, però encara no són funcionals. save() El mètode sempre produeix sortida PPTX independentment del paràmetre de format.
Fonte oberta i llicències
Aspose.Slides FOSS for Python is released under the MIT license. You can use it in Els projectes personals, acadèmics i comercials sense restriccions. El codi font és disponible en el dia GitHub i el paquet es publica en PyPI.