Introducción
Esta guía muestra cómo crear, modificar y guardar presentaciones de PowerPoint programáticamente en Python utilizando Aspose.Slides FOSS. La biblioteca le permite construir las pistas de la escurrección, agregar y reordenar las slides, popularla con formas, tablas y texto formado, y salvar el resultado a PPTX. Todo el procesamiento se realiza en puro Pythón sin dependencia de Microsoft Office o cualquier binario externo.
La biblioteca está disponible en Pypi como aspose-slides-foss bajo la licencia MIT. Instalar Lo con pip, importarlo, y comenzar a construir presentaciones en varias líneas de código. automatiza la generación de informes, construye un tubo de descuento de slide o incorpora La salida de presentación en una aplicación web, la API cubre la superficie completa: slide colecciones, las pistas de master/layout, colecciones de formas, cuadros de texto, formatos de relleno y Opciones de exportación.
Este post se dirige a las capacidades de gestión de presentación básicas, las clases y los métodos que más utilizará cuando trabaja con slides en Python.
Lo que está incluido
Presentación Ciclo de Vida
El Presentation clase es el punto de entrada. Crea un nuevo recinto, manipula sus contenidos y salva en PPTX. Presentation como un director de contexto con with para liberar archivos de forma automática.
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)
Operaciones de colección Slide
SlideCollection permita que añade, insertar, clonar, eliminar y reordenar las pistas. len(pres.slides) Refleja el número actual después de cada cambio.
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)
Forma y autoformaciones
Añade rectangulos, ellipses, triángulos y otras formas de geometría a cualquier slide mediante ShapeCollection.add_auto_shape().Cada forma exponerá posición, tamaño, rotación, y rellenar las propiedades que persisten a lo largo de los ciclos de ahorro/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
Mesa de
Crea tablas de datos con ShapeCollection.add_table(),-Celular el texto a través de TextFrame, fusiones de células, y aplicar el formato fronterizo. alturas de rango y columna Las latitudes se ajustan a los valores que usted transmite 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])
# 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 y Layout Slides
Cada presentación tiene una hierarquía de las pistas y los picos. A través de Presentation.masters y Presentation.layout_slides Aplicar de forma consistente Formato en su deca.
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)
Propiedades de documentos
Leer y escribir metadatos integrados como título, autor y sujeto a través de la DocumentProperties -Contactar cualquiera de estas propiedades antes de llamar save() - están incorporados en los metadatos PPTX y se pueden leer por herramientas de descenso:
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)
Inicio rápido
Ejecuta el siguiente comando de pip para instalar Aspose.Slides FOSS para Python desde PyPI:
pip install aspose-slides-foss
El siguiente ejemplo crea una presentación con una forma de título, un tabla de datos y un relleno, luego lo salva en 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)
Formatos apoyados
| Formato | Extensiones | Leer | Escribe |
|---|---|---|---|
| PPTX | .ptx | ✓ | ✓ |
| PPT | .ppt en | — | Planificado |
| PPSX | .px | — | Planificado |
| PPTM | .pptm en el | — | Planificado |
| POTX | .Póx | — | Planificado |
| ODP | .odp | — | Planificado |
| — | Planificado | ||
| HTML | .html en el | — | Planificado |
| HTML5 | .html en el | — | Planificado |
| TIFF | .TIFF | — | Planificado |
| GIF | .GIF | — | Planificado |
| XPS | .XPS | — | Planificado |
| FODP | .FODP | — | Planificado |
| MD | .md | — | Planificado |
Nota de: PPTX lectura y escritura se implementan plenamente.Otros SaveFormat los valores (PPT, ODP, PDF, etc.) se planifican para futuras publicaciones; trasladándolos a la save() Actualmente produce PPTX.
Open Source y Licenciación
Aspose.Slides FOSS for Python is released under the MIT license. You can use it in Proyectos personales, académicos y comerciales sin restricciones. el código fuente es Disponible en GitHub El paquete se publica en PyPI.