sábado, 22 de marzo de 2025
Textos. Python
jueves, 20 de marzo de 2025
mav. Python
Biblioteca python-pptx
MAV. Python
Python-pptx. Gráfico (3)
- from pptx.chart.data import CategoryChartData
- from pptx.enum.chart import XL_CHART_TYPE
- El primero, la clase de gráfico al que hace referencia la constante, en este caso, XL_CHART_TYPE.COLUMN_CLUSTERED, que hace referencia a un gráfico de barras.
- Después cuatro variables numéricas, dos de posición y dos de dimensiones, que podemos introducir directamente o mediante referencia a variables declaradas previamente, como es el caso (x, y, cx, cy = Inches(2), Inches(2), Inches(6), Inches(4.5))
- y finalmente la variable que remite al gráfico creado antes (en este caso, y como sabemos, chart_data)
Gráficos. Python
Python-pptx. Gráfico (2)
martes, 18 de marzo de 2025
MAV. Python
Python-pptx. Gráfico (1)
Imagen
- el directorio donde se encuentra la imagen (variable asociada img_path)
- y los posicionamientos cartesianos left y top bien como variables previamente asignadas (left = top = Inches(1)) o bien mediante valores numéricos directos.
MAV. Python
Python-pptx (3)
- Añadimos el párrafo al text box (p0 = tf.add_paragraph())
- Y le damos contenido (p1.text = parrafo1)
- Después podemos añadir formato al texto (p1.font.size = Pt(10)), aunque no siempre es necesario ni funciona como sería de esperar (eso también).
lunes, 17 de marzo de 2025
Gráficos. Python
Python-pptx. Índice.
- Primero accedemos a la clase formas de la clase diapositiva (formas = diapo2.shapes)
- Y después a la forma title (título) presente en nuestra diapositiva en función del modelo (de diapositiva) que solicitamos crear en el paso anterior (titulo2 = formas.title)
- Finalmente añadimos el texto (titulo2.text = "Presentación con python.")
- Añadimos el parágrafo a la lista del conjunto de objetos parafraph (p1 = tesquema.add_paragraph())
- Dotamos de contenido textual a ese elemento (p1.text = "Título y subtítulo")
- Y finalmente indicamos el nivel al que pertenece (p1.level = 1), que en este caso es el primer nivel, pero que en otros, como el asignado a la variable p4a es el segundo (p4a.level = 2)
domingo, 16 de marzo de 2025
MAV. Python
Python-pptx. Título y subtítulo.
- Un título informativo
- Un índice
- Un contenido textual
- Y un contenido gráfico.
- Para el título, accedemos a la forma (titulo = diapo1.sahpes.title) y le añadimos el texto (titulo.text = "Presentación con Python")
- Y para el subtítulo, poco más o menos lo mismos:
- Accedemos al objeto (subtitulo = slide.placeholders[1])
- Y añadimos su contenido textual (subtitulo.text = "Elementos básicos de una presentación informativa.")
Evaluación. Soportes.
Presentaciones con python-pptx
Sub CrearPresentaDim sRuta As String, sRutaGuardar As StringDim mArg()Dim oPresenta As ObjectDim mOpciones(0) As New "com.sun.star.beans.PropertyValue"'Crear presentaciónsRuta = "private:factory/simpress"oPresenta = StarDesktop.loadComponentFromURL( sRuta, "_default", 0, mArg() )'Añadir nuevas diapositivasDim NuevaDiapo As ObjectDim i As Integer'Creamos un bucle para añadir x número de diapositivas en blancoFor i = 1 To 4NuevaDiapo = oPresenta.DrawPages.InsertNewByIndex(i)Next'Guardar la presentaciónsRutaGuardar = ConvertToUrl ("C:/Users/XXXXX/Desktop/MiPresenta.odp")oPresenta.storeAsUrl(sRutaGuardar, mOpciones())End Sub
Primero identificamos dónde se va a guardar la presentación (sRutaGuardar = ConvertToUrl ("C:/Users/XXXXX/Desktop/MiPresenta.odp")) mediante la función ConvertToUrl() que incluye el string con la ruta completa (observa que debes adaptarla a tu caso concreto)
Y después la guardamos (oPresenta.storeAsUrl(sRutaGuardar, mOpciones())) mediante la función storeAsUrl()
No voy a insistir en lo obvio, pero es evidente que con esto poco tenemos avanzado en la automatización de presentaciones; y no resulta sencillo ir mucho más allá. De hecho existe una página web sostenida por personas con amplios conocimientos técnicos (wiki.open-office.es) en la que no he encontrado las soluciones a los problemas que deberíamos resolver para automatizar la creación de una presentación. En realidad es posible encontrar en la web algún ejemplo de que se puede hacer, pero no ha sabido adaptar estos ejemplos a necesidades reales, por lo que se quedan en meros atisbos de posibles soluciones.
Donde la búsqueda resulta mucho más satisfactoria es en el mundo Python. Podemos trabajar con una librería que deberemos tener instalada previamente (pip install python-pptx) y con la que es posible crear presentaciones Power Point (las cuales podemos visualizar también desde Impress, como ya sabemos). A explicar cómo trabajar con esta librería dedicaré algunas entradas, aunque hora me limitaré a exponer cómo crear una presentación.
from pptx import Presentation
#Crear la presentación
mi_presenta = Presentation()
#Añadir una diapositiva
diapo1 = mi_presenta.slide_layouts[0]
diapo1 = mi_presenta.slides.add_slide(diapo1)
#Guardar presentación
mi_presenta.save("C:/Users/xxxx/Desktop/presenta_uno.pptx")
- Mediante el primero creamos el objeto diapositiva, un tipo concreto de modelo de diapositiva, para ser más precisos (diapo1 = mi_presenta.slide_layouts[0])
- Y en el segundo añadimos ese objeto recién creado a la colección de dispositivas de la presentación (diapo1 = mi_presenta.slides.add_slide(diapo1)).
















