Base de conocimientos

Python PPTX | Cómo manipular presentaciones de PowerPoint

Si desea saber cómo crear, leer, personalizar, combinar, clonar o convertir presentaciones de PowerPoint y OpenOffice usando Python sin necesidad de otro software externo, lo tenemos cubierto.

Aspose.Slides for Python via .NET es una biblioteca de clases para manipular presentaciones, que ofrece muchas funciones clave como crear presentaciones desde cero, convertir presentaciones, gestionar textos, formas, tablas, animaciones, previsualizar diapositivas, exportar diapositivas a PDF, TIFF, XPS, HTML, etc., y muchas más. Aspose.Slides for Python via .NET proporciona demostraciones y ejemplos funcionales para ayudarle a comprender mejor nuestra API.

Nuestra API ofrece las siguientes características:

• Crear o clonar diapositivas a partir de plantillas
• Trabajar con tablas de PowerPoint
• Eliminar o añadir protección a las formas
• Añadir gráficos de MS Excel como OleObjects
• Generar presentaciones a partir de bases de datos
• Proteger presentaciones
• Crear y modificar gráficos
• Exportar presentaciones a PDF, XPS, HTML, JPEG, PNG, SVG y muchos más

Formatos de archivo compatibles:

Aspose.Slides for Python via .NET puede cargar y guardar los siguientes formatos de archivo: PPT, POT, PPS, PPTX, POTX, PPSX, PPTM, PPSM, POTM, ODP, OTP, y guardar en los siguientes formatos: TIFF, EMF, PDF, XPS, JPEG, PNG, GIFF, BMP, SVG, SWF, HTML, XAML.

A continuación, le mostraremos cómo crear, abrir, combinar y guardar una presentación, y le proporcionaremos ejemplos de código.

Python PPTX | How to manipulate with PowerPoint presentation

Cómo crear una presentación PowerPoint (PPTX) usando Python

Para añadir una nueva línea dentro de una diapositiva usando Aspose.Slides for Python via .NET, siga estos pasos:

  1. Crear una instancia de la clase Presentation
  2. Obtener una referencia a la diapositiva usando su índice
  3. Usar el método add_auto_shape expuesto por el objeto shapes para añadir una AutoShape del tipo LINE
  4. Guardar la presentación como archivo PPTX

Con estos pasos, añadimos una línea a la primera diapositiva de la presentación:

import aspose.slides as slides  

# Instanciar un objeto Presentation que representa un archivo de presentación
with slides.Presentation() as presentation:
    slide = presentation.slides[0]
    slide.shapes.add_auto_shape(slides.ShapeType.LINE, 50, 150, 300, 0)
    presentation.save("NewPresentation_out.pptx", slides.export.SaveFormat.PPTX)

Cómo abrir una presentación usando Python

Con Aspose.Slides for Python via .NET, los desarrolladores pueden acceder o modificar presentaciones de PowerPoint existentes.

Nuestra API proporciona una clase Presentation para abrir una presentación existente, y podemos usar uno de los constructores adecuados de la clase Presentation para crear su objeto a partir de una presentación de PowerPoint existente. En el ejemplo que se muestra a continuación, veremos cómo abrir una Presentation. Hemos pasado el nombre del archivo de presentación al constructor de la clase Presentation y obtenemos el número total de diapositivas para imprimirlo en pantalla.

import aspose.slides as slides

# Abrir el archivo de presentación pasando la ruta del archivo al constructor de la clase Presentation
with slides.Presentation("pres.pptx") as pres:
    # Imprimir el número total de diapositivas presentes en la presentación
    print(pres.slides.length)

Y si tiene presentaciones muy grandes (por ejemplo, de 3 GB), puede abrirlas con el siguiente código de ejemplo:

import aspose.slides as slides
import os

loadOptions = slides.LoadOptions()
loadOptions.blob_management_options = slides.BlobManagementOptions()
loadOptions.blob_management_options.presentation_locking_behavior = slides.PresentationLockingBehavior.KEEP_LOCKED

with slides.Presentation("pres.pptx", loadOptions) as pres:
    # la enorme presentación se carga y está lista para usar, pero el consumo de memoria sigue siendo bajo.

    # realizar cualquier cambio en la presentación.
    pres.slides[0].name = "Presentación muy grande"

    # la presentación se guardará en otro archivo, el consumo de memoria sigue bajo durante el guardado.
    pres.save("veryLargePresentation-copy.pptx", slides.export.SaveFormat.PPTX)

    # ¡no haga eso! Se lanzará una excepción de E/S porque el archivo está bloqueado mientras los objetos pres
    # no se eliminen
    os.remove("pres.pptx")

# está bien hacerlo aquí, el archivo fuente no está bloqueado por el objeto pres
os.remove("pres.pptx")

Si está creando una presentación que contiene objetos grandes (imágenes, video, audio, etc.), use la funcionalidad Blob para reducir el consumo de memoria.

Cómo combinar presentaciones PowerPoint usando Python

Aspose.Slides for Python via .NET le permite combinar presentaciones de diferentes maneras. Puede combinar presentaciones de PowerPoint con sus formas, formato, textos, estilos, comentarios, etc., sin perder calidad ni datos. Con nuestra API, puede combinar presentaciones completas, diapositivas específicas y presentaciones en un mismo formato (PPTX a PPTX, PPT a PPT, etc.), o en formatos diferentes (PPTX a PPT, PPTX a ODP, etc.).

Para combinar presentaciones puede usar los métodos add_clone (de la interfaz ISlideCollection ). El objeto Presentation contiene una colección de diapositivas, y puede llamar al método add_clone desde la presentación seleccionada; en esa presentación se combinarán las diapositivas.

Combinar presentaciones

Usando el método AddClone (ISlide) puede combinar diapositivas sin preocuparse de que pierdan su apariencia y estilos (parámetros predeterminados).
En el código siguiente se muestra cómo combinar presentaciones:

import aspose.slides as slides

with slides.Presentation("pres.pptx") as pres1:
    with slides.Presentation("Presentation1.pptx") as pres2:
        for slide in pres2.slides:
            pres1.slides.add_clone(slide)
        pres1.save("combined.pptx", slides.export.SaveFormat.PPTX)

Combinar la presentación y cambiar el estilo de las diapositivas
Si desea cambiar el estilo de las diapositivas en la presentación de salida mientras combina diapositivas, el método add_clone (ISlide, IMasterSlide, Boolean) le permite hacerlo.

import aspose.slides as slides

with slides.Presentation("pres.pptx") as pres1:
    with slides.Presentation("Presentation1.pptx") as pres2:
        for slide in pres2.slides:
            pres1.slides.add_clone(slide, pres1.masters[0], allow_clone_missing_layout = True)
        pres1.save("combined_with_master.pptx", slides.export.SaveFormat.PPTX)

Combinar diapositivas específicas
Usando el código siguiente, puede seleccionar y combinar diapositivas específicas de diferentes presentaciones, obteniendo una única presentación de salida:

import aspose.slides as slides

with slides.Presentation("pres.pptx") as pres1:
    with slides.Presentation("Presentation1.pptx") as pres2:
        for slide in pres2.slides:
            pres1.slides.add_clone(slide, pres1.layout_slides[0])
        pres1.save("combined_with_layout.pptx", slides.export.SaveFormat.PPTX)

Para más formas de combinar presentaciones, consulte la sección Combinar presentación en la documentación.

Cómo guardar presentaciones PowerPoint usando Python

Con Aspose.Slides for Python via .NET puede guardar una presentación como archivo o flujo. A continuación proporcionamos un ejemplo de código para ambos métodos.

Guardar la presentación como archivos
Puede guardar una presentación como archivo llamando al método Save de la clase Presentation .

En el código siguiente se muestra cómo guardar una presentación con Aspose.Slides for Python via .NET usando Python, pasando el nombre del archivo y el formato de guardado al método save.

import aspose.slides as slides

# Instanciar un objeto Presentation que representa un archivo PPT
with slides.Presentation() as presentation:
    
    #...realizar trabajo aquí...

    # Guardar su presentación en un archivo
    presentation.save("Saved_out.pptx", slides.export.SaveFormat.PPTX)

Guardar la presentación en flujos
Una forma de guardar presentaciones es guardarlas en un flujo. Simplemente pase un flujo de salida al método Save de la clase Presentation . En el código que se muestra a continuación, hemos creado un nuevo archivo Presentation, añadido texto a la forma y guardado la presentación en el flujo.

import aspose.slides as slides

# Instanciar un objeto Presentation que representa un archivo PPT
with slides.Presentation() as presentation:
    
    shape = presentation.slides[0].shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 200, 200, 200, 200)

    # Guardar su presentación en un flujo
    with open("Save_As_Stream_out.pptx", "bw") as stream:
        presentation.save(stream, slides.export.SaveFormat.PPTX)

En nuestra documentación, puede descubrir cómo guardar presentaciones con tipo de vista predefinido , guardar presentaciones en formato estricto Open XML de hoja de cálculo o guardar actualizaciones de progreso en porcentaje .

Aspose.Slides for Python via .NET es compatible con Python 3.5, 3.6, 3.7, 3.8, 3.9 y, en caso de que escriba código Python en Linux, puede consultar los requisitos adicionales para Linux .

Consultoría de pago

Si necesita ayuda con su proyecto, tenemos expertos que trabajarán con usted, diseñarán una solución e implementarán nuestra API según sus necesidades. Nosotros hacemos el trabajo duro para que usted pueda centrarse en su negocio.