Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube
JC Mouse Bolivia
Index / Java / Crea presentaciones Power Point desde Java

Crea presentaciones Power Point desde Java

Autor jc mouse martes, mayo 15, 2018

Apache POI es la API de Java para el trabajo con archivos de Microsoft como son Word, Excel y Power Point.

Apache POI se encuentra en la versión 3.17 compatible con Java 6. El próximo lanzamiento sera la 4.0.0 y requerirá Java 8 o superior.

Apache POI puede utilizarse descargando su librería desde este enlace (29 MB binarios y 92 MB las fuentes) o usarse Maven para integrarlo al proyecto de la siguiente forma:

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>3.17</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>3.17</version>
</dependency>

A continuación un sencillo ejemplo pata la creación de un documento Power Point con un slide, texto, imágenes y tabla:

import java.awt.Rectangle;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.awt.Color;
import java.awt.Dimension;
import java.io.File;
import java.io.IOException;
import org.apache.poi.sl.usermodel.TextParagraph;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFTextBox;
import org.apache.poi.xslf.usermodel.XSLFTextParagraph;
import org.apache.poi.xslf.usermodel.XSLFTextRun;
import org.apache.poi.sl.usermodel.PictureData;
import org.apache.poi.util.IOUtils;
import org.apache.poi.xslf.usermodel.XSLFHyperlink;
import org.apache.poi.xslf.usermodel.XSLFPictureData;
import org.apache.poi.xslf.usermodel.XSLFPictureShape;
import org.apache.poi.xslf.usermodel.XSLFTable;
import org.apache.poi.xslf.usermodel.XSLFTableCell;
import org.apache.poi.xslf.usermodel.XSLFTableRow;
/**
 * @see https://www.jc-mouse.net/
 * @author mouse
 */
public class Main {
    
    public static void main(String[] args) {       
        
        final String presentacion_ppt="Mi_presentacion_007";
        final int ANCHO = 1280;
        final int ALTO = 720;
        
        try {
            /**
             * Crea nueva presentacion
             */            
            XMLSlideShow ppt = new XMLSlideShow();
            ppt.setPageSize(new Dimension(ANCHO,ALTO));
            
            /**
             * Crea un slide
             */
            XSLFSlide slide1 = ppt.createSlide();
            
            /**
             * Imagen de fondo
             */
            XSLFPictureData psssssd = ppt.addPicture(new File("e:\\DIRECCION DE TU IMAGEN\\fondoppt.jpg"), PictureData.PictureType.JPEG);
            XSLFPictureShape pictssure = slide1.createPicture(psssssd);
            pictssure.setAnchor(new Rectangle(0, 0, ANCHO, ALTO));                        
            
            /**
             * Texto "El Titulo de la presentación"
             */
            XSLFTextBox textBox = slide1.createTextBox();
            textBox.clearText();            
            //posicion y dimensiones
            textBox.setAnchor(new Rectangle(240, 560, 1000, 70));
            //color de fondo
            textBox.setFillColor(new Color(105,124,138));
            //parrafo
            XSLFTextParagraph parrafo = textBox.addNewTextParagraph();
            //alineación del texto
            parrafo.setFontAlign(TextParagraph.FontAlign.CENTER);
            parrafo.setTextAlign(TextParagraph.TextAlign.CENTER);
            //texto individual
            XSLFTextRun texto = parrafo.addNewTextRun();            
            texto.setText("COMPUTACION EN LA NUBE");
            //estilos
            texto.setUnderlined(true);
            texto.setBold(true);
            texto.setFontColor(Color.WHITE);            
            texto.setFontSize(48.);            

            /**
             * Texto con Link
             */
            XSLFTextBox textbox2 = slide1.createTextBox();
            textbox2.clearText();      
            textbox2.setAnchor(new Rectangle(440, 630, 480, 40));     
            XSLFTextParagraph parrafo2 = textbox2.addNewTextParagraph();
            XSLFTextRun texto1 = parrafo2.addNewTextRun();            
            texto1.setText("Para más información visite ");
            texto1.setFontSize(30.);        
            XSLFTextRun texto2 = parrafo2.addNewTextRun();            
            XSLFHyperlink link = texto2.createHyperlink();                 
            link.setAddress("https://www.jc-mouse.net/");
            texto2.setText("JC Mouse");
            texto2.setBold(true);
            texto2.setFontSize(30.);        
            
            
            /**
             * Imagen 
             */
            byte[] pictureData = IOUtils.toByteArray(new FileInputStream("e:\\DIRECCION DE TU IMAGEN\\cloud.png"));
            XSLFPictureData pd = ppt.addPicture(pictureData, PictureData.PictureType.PNG);
            XSLFPictureShape picture = slide1.createPicture(pd);
            picture.setAnchor(new Rectangle(50, 250, 300, 300));                        

            /**
             * Tabla
             */
            XSLFTable tabla = slide1.createTable();
            tabla.setAnchor(new Rectangle(600, 100, 460, 320));
            XSLFTextParagraph p = textBox.addNewTextParagraph();
            //encabezado
            int columnas = 3;
            XSLFTableRow fila_encabezado = tabla.addRow();
            fila_encabezado.setHeight(40);
            for (int i = 1; i <= columnas; i++) {
                XSLFTableCell celda_encabezado = fila_encabezado.addCell();
                celda_encabezado.setFillColor(new Color(0,0,0));
                XSLFTextParagraph tp = celda_encabezado.addNewTextParagraph();                
                XSLFTextRun tr = tp.addNewTextRun();
                tr.setText("Encabezado " + i);
                tr.setFontColor(new Color(255,255,255));
                tr.setBold(true);
                tabla.setColumnWidth(i-1, 200);
            }
            //contenido
            int filas = 6;
            for (int fila = 1; fila <= filas; fila++) {
                XSLFTableRow tr = tabla.addRow();
                tr.setHeight(50);
                for (int columna = 0; columna < columnas; columna++) {
                    XSLFTableCell celda_contenido = tr.addCell();
                    celda_contenido.setFillColor((fila%2==0)?new Color(202,233,242):new Color(235,233,245));
                    XSLFTextParagraph tp = celda_contenido.addNewTextParagraph();
                    XSLFTextRun trc = tp.addNewTextRun();
                    trc.setText("Celda [" + fila + "," + (columna+1)+"]" );
                }
            }
            
            /**
             * Guardando archivo PPT
             */            
            File file = new File("E:\\DIRECCION PARA GUARDAR ARCHIVO PPTX\\"+presentacion_ppt+".pptx");
            FileOutputStream out = new FileOutputStream(file);            
            ppt.write(out);
            System.out.println("Archivo PPT creado");
            out.close();
        } catch (IOException ex) {
            ex.printStackTrace();
        }

    }
    
}

Y tenemos:

slide java ppt

El código fuente completo más los recursos utilizados en este ejemplo los puedes descargar desde este <enlace pobre>

enjoy!!!

Tags

Si te ha gustado podrías compartirlo o dejar un comentario. ¡Muchas gracias!
Autor: JC Mouse

Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.

Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye

Enjoy! :)

También Te Podría Interesar

Como saber el tipo de objeto que contiene un hashmap

Como saber el tipo de objeto que contiene un hashmap

La clase hashMap es muy util para almacenar objetos de la forma ( Clave, Objeto ), donde Clave es un identificador único...

Microservicio REST Java con Spark – Parte 2

Microservicio REST Java con Spark – Parte 2

Segunda y ultima parte del post dedicado a la creación de un microservicio en lenguaje java utilizando el framework Spar...

Validación XML con Esquema XSD en PHP

Validación XML con Esquema XSD en PHP

En este post realizaremos un pequeño ejemplo de validación de archivos XML utilizando el esquema XSD y el lenguaje PHP (...

Simulador de Urna Electrónica en java

Simulador de Urna Electrónica en java

Hola 🙂 en esta ocasión un amigo del Brasil nos envía un proyecto java de una Urna Electrónica o Voto Electronico, desarr...

Generar esquema XSD a partir de clases java

Generar esquema XSD a partir de clases java

En un post anterior vimos como usar la herramienta XJC del JDK para generar clases java desde esquemas XSD (XML Schema D...

JCheckBox dentro JTable con Netbeans

JCheckBox dentro JTable con Netbeans

Para colocar un JCheckBox dentro una celda de un JTable debemos sobre escribir algunas clases para que el componente pue...

Comparte lo que sabes

Categorias

Últimas entradas

Existe una gran cantidad de contenido sobre productividad, trucos, consejos y trabajo y más. Pero, ¿Qué pasa con esos mo...

En este post te enseño a usar una herramienta de Inteligencia Artificial para animar tus fotografias y esto completament...

Si trabajas con redes sociales (RRSS) a continuación te muestro tres herramintas gratuitas que te ayudaran a la hora de...

Por lo general se usan transacciones a nivel base de datos y posteriormente se llaman estos a través de procedimientos a...

Herramientas

Generador de Enlaces a Whatsapp