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

FormatoExtensionesLeerEscribe
PPTX.ptx
PPT.ppt enPlanificado
PPSX.pxPlanificado
PPTM.pptm en elPlanificado
POTX.PóxPlanificado
ODP.odpPlanificado
PDF.pdfPlanificado
HTML.html en elPlanificado
HTML5.html en elPlanificado
TIFF.TIFFPlanificado
GIF.GIFPlanificado
XPS.XPSPlanificado
FODP.FODPPlanificado
MD.mdPlanificado

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.


Empezando a

Recursos relacionados