Cómo usar python-pptx en Python: Guía completa para crear y automatizar presentaciones en PowerPoint

1. ¿Qué es python-pptx?

python-pptx es una librería que permite crear, editar y guardar presentaciones de PowerPoint directamente desde programas en Python. Con esto, se eliminan tareas manuales tradicionales, permitiendo la generación automática de presentaciones dinámicas basadas en datos y optimizando tareas repetitivas.

1.1 Usos principales de python-pptx

  • Creación automática de presentaciones: Es posible generar diapositivas automáticamente basadas en datos para reuniones o informes.
  • Edición eficiente: Se pueden añadir diapositivas o texto a archivos existentes de PowerPoint y actualizar el contenido en poco tiempo.

1.2 Ventajas de manipular PowerPoint desde Python

En comparación con el trabajo manual en PowerPoint, usar python-pptx permite la automatización mediante programación. Esto posibilita generar grandes volúmenes de diapositivas de una sola vez o agilizar la creación de informes periódicos, reduciendo significativamente el tiempo de trabajo.

2. Configuración de python-pptx

2.1 Procedimiento de instalación

La instalación de python-pptx es muy sencilla. Solo necesitas ejecutar el siguiente comando:
pip install python-pptx
Además, si no cuentas con un entorno de Python configurado, puedes usar conda para preparar el entorno e instalar la librería.

2.2 Estructura básica de python-pptx

Primero se importa la librería y se utiliza la clase Presentation() para crear una nueva presentación. Este es el punto de partida para manipular PowerPoint.
from pptx import Presentation

prs = Presentation()
Este código crea una nueva presentación y la prepara para añadir diapositivas o texto.
RUNTEQ(ランテック)|超実戦型エンジニア育成スクール

3. Creación y guardado de una presentación

3.1 Creación de una nueva presentación

Primero, veamos cómo crear y guardar una presentación con python-pptx. El siguiente código muestra cómo generar un nuevo archivo de PowerPoint y guardarlo:
from pptx import Presentation

prs = Presentation()
prs.save('new_presentation.pptx')
Con esto, el archivo de PowerPoint se guarda en el directorio actual con el nombre especificado.

3.2 Cómo añadir diapositivas

Para añadir diapositivas dentro de la presentación, se usa el método add_slide(). Existen 11 plantillas de diseño disponibles para elegir.
slide_layout = prs.slide_layouts[0]  # Seleccionar diapositiva de título
slide = prs.slides.add_slide(slide_layout)
Este código añade una nueva diapositiva basada en el diseño seleccionado.

4. Manipulación del contenido de las diapositivas

4.1 Inserción y formato de texto

Para insertar texto, se usan los marcadores de posición (título o subtítulo). Luego, con el objeto TextFrame, se aplica formato. Ejemplo:
title = slide.shapes.title
subtitle = slide.placeholders[1]

title.text = "Título de la presentación"
subtitle.text = "Subtítulo"
También es posible modificar el tamaño de fuente, color o añadir saltos de línea:
title.text = "Diapositiva generada
automáticamente con Python"

4.2 Añadir imágenes y formas

Para insertar imágenes en una diapositiva, se utiliza el método add_picture(), especificando la posición y el tamaño.
from pptx.util import Inches

img_path = 'image.png'
left = Inches(1)
top = Inches(2)
slide.shapes.add_picture(img_path, left, top)
Además, se pueden añadir formas desde el menú de figuras de PowerPoint mediante programación:
from pptx.enum.shapes import MSO_SHAPE
shape = slide.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE, Inches(1), Inches(1), Inches(2), Inches(1))
shape.text = "Texto en la figura"

5. Técnicas avanzadas de automatización

5.1 Generación automática de diapositivas

Con un bucle, es posible generar muchas diapositivas automáticamente. Ejemplo:
for i in range(10):
    slide_layout = prs.slide_layouts[1]
    slide = prs.slides.add_slide(slide_layout)
    title = slide.shapes.title
    title.text = f"Diapositiva {i+1}"
Este código genera 10 diapositivas con numeración consecutiva.

5.2 Edición de presentaciones existentes

También es posible cargar un archivo existente de PowerPoint y editar su contenido. Por ejemplo, para actualizar un título:
prs = Presentation('existing_presentation.pptx')
slide = prs.slides[0]
title = slide.shapes.title
title.text = "Título actualizado"
prs.save('updated_presentation.pptx')

6. Mejorar la apariencia de la presentación

6.1 Aplicar plantillas

Con python-pptx se pueden aplicar plantillas de diseño para crear presentaciones con un aspecto más profesional de manera sencilla.

6.2 Configuración de animaciones y transiciones

En presentaciones más avanzadas, también se pueden configurar animaciones y transiciones de diapositivas para incrementar el impacto visual.

7. Conclusión

python-pptx es una herramienta poderosa que reduce significativamente el esfuerzo en la creación de presentaciones. Es ideal para generar muchas diapositivas de una vez o para crear informes basados en datos de manera automática. Al automatizar el proceso con programación, es posible obtener presentaciones eficientes y de alta calidad con facilidad.
RUNTEQ(ランテック)|超実戦型エンジニア育成スクール