Apache POI PPT - Layout diapositiva
Nel capitolo precedente, hai visto come creare diapositive vuote e come aggiungervi diapositive. In questo capitolo imparerai come ottenere l'elenco delle diapositive disponibili e come creare una diapositiva con layout diversi.
Layout diapositiva disponibili
Le presentazioni di PowerPoint dispongono di layout diapositiva e puoi scegliere un layout desiderato per modificare una diapositiva. Prima di tutto, cerchiamo di scoprire l'elenco di tutti i layout di diapositiva disponibili.
Esistono diversi schemi diapositiva e in ogni schema diapositiva sono presenti diversi layout diapositiva.
Puoi ottenere l'elenco degli schemi diapositiva utilizzando il file getSlideMasters() metodo del XMLSlideShow classe.
Puoi ottenere l'elenco dei layout delle diapositive da ogni schema diapositiva utilizzando il file getSlideLayouts() metodo del XSLFSlideMaster classe.
È possibile ottenere il nome del layout diapositiva dall'oggetto layout utilizzando il file getType() metodo del XSLFSlideLayout classe.
Note- Tutte queste classi appartengono al pacchetto org.poi.xslf.usermodel .
Di seguito è riportato il programma completo per ottenere l'elenco dei layout di diapositiva disponibili nel PPT -
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlideLayout;
import org.apache.poi.xslf.usermodel.XSLFSlideMaster;
public class SlideLayouts {
public static void main(String args[]) throws IOException {
//create an empty presentation
XMLSlideShow ppt = new XMLSlideShow();
System.out.println("Available slide layouts:")
//getting the list of all slide masters
for(XSLFSlideMaster master : ppt.getSlideMasters()) {
//getting the list of the layouts in each slide master
for(XSLFSlideLayout layout : master.getSlideLayouts()) {
//getting the list of available slides
System.out.println(layout.getType());
}
}
}
}
Salva il codice Java sopra come SlideLayouts.java , quindi compilarlo ed eseguirlo dal prompt dei comandi come segue:
$javac SlideLayouts.java
$java SlideLayouts
Verrà compilato ed eseguito per generare il seguente output:
Available slide layouts:
TITLE
PIC_TX
VERT_TX
TWO_TX_TWO_OBJ
BLANK
VERT_TITLE_AND_TX
TITLE_AND_CONTENT
TITLE_ONLY
SECTION_HEADER
TWO_OBJ
OBJ_TX
Di seguito sono riportati alcuni dei layout di diapositiva di esempio disponibili con MS-Office 360, edizione 2013.
Layout del titolo
Creiamo una diapositiva in un PPT utilizzando il layout del titolo. Segui i passaggi indicati di seguito:
Step 1 - Crea una presentazione vuota istanziando il file XMLSlideShow classe come mostrato di seguito.
XMLSlideShow ppt = new XMLSlideShow();
Step 2 - Ottieni l'elenco degli schemi diapositiva utilizzando il file getSlideMasters()metodo. Successivamente, selezionare lo schema diapositiva desiderato utilizzando l'indice come mostrato di seguito.
XSLFSlideMaster slideMaster = ppt.getSlideMasters()[0];
Qui stiamo ottenendo lo schema diapositiva predefinito che si trova nella posizione 0 ° dell'array master diapositiva.
Step 3 - Ottieni il layout desiderato utilizzando il file getLayout() metodo del XSLFSlideMasterclasse. Questo metodo accetta un parametro in cui devi passare una delle variabili statiche del fileSlideLayoutclass, che rappresenta il nostro layout desiderato. Esistono diverse variabili in questa classe in cui ogni variabile rappresenta un layout di diapositiva.
Lo snippet di codice riportato di seguito mostra come creare un layout del titolo:
XSLFSlideLayout titleLayout = slideMaster.getLayout(SlideLayout.TITLE);
Step 4 - Crea una nuova diapositiva passando un oggetto layout diapositiva come parametro.
XSLFSlide slide = ppt.createSlide(titleLayout);
Step 5 - Seleziona un segnaposto utilizzando il getPlaceholder() metodo del XSLFSlideclasse. Questo metodo accetta un parametro intero. Passando0 ad esso, otterrai il file XSLFTextShapeoggetto, utilizzando il quale è possibile accedere all'area di testo del titolo della diapositiva. Impostare il titolo utilizzando il metodo setText () come mostrato di seguito.
XSLFTextShape title1 = slide.getPlaceholder(0);
//setting the title init
title1.setText("Tutorials point");
Di seguito è riportato il programma completo per creare una diapositiva con layout del titolo in una presentazione -
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.xslf.usermodel.SlideLayout;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFSlideLayout;
import org.apache.poi.xslf.usermodel.XSLFSlideMaster;
import org.apache.poi.xslf.usermodel.XSLFTextShape;
public class TitleLayout {
public static void main(String args[]) throws IOException {
//creating presentation
XMLSlideShow ppt = new XMLSlideShow();
//getting the slide master object
XSLFSlideMaster slideMaster = ppt.getSlideMasters()[0];
//get the desired slide layout
XSLFSlideLayout titleLayout = slideMaster.getLayout(SlideLayout.TITLE);
//creating a slide with title layout
XSLFSlide slide1 = ppt.createSlide(titleLayout);
//selecting the place holder in it
XSLFTextShape title1 = slide1.getPlaceholder(0);
//setting the title init
title1.setText("Tutorials point");
//create a file object
File file = new File("C://POIPPT//Examples//Titlelayout.pptx");
FileOutputStream out = new FileOutputStream(file);
//save the changes in a PPt document
ppt.write(out);
System.out.println("slide cretated successfully");
out.close();
}
}
Salva il codice Java sopra come TitleLayout.java, quindi compilalo ed eseguilo dal prompt dei comandi come segue:
$javac TitleLayout.java
$java TitleLayout
Verrà compilato ed eseguito per generare il seguente output.
slide created successfully
Il documento PPT con la diapositiva del layout del titolo appena aggiunta appare come segue:
Titolo e layout del contenuto
Creiamo una diapositiva in un PPT utilizzando il titolo e il layout del contenuto. Segui i passaggi indicati di seguito.
Step 1 - Crea una presentazione vuota istanziando il file XMLSlideShow classe come mostrato di seguito.
XMLSlideShow ppt = new XMLSlideShow();
Step 2 - Ottieni l'elenco degli schemi diapositiva utilizzando il file getSlideMasters()metodo. Selezionare lo schema diapositiva desiderato utilizzando l'indice come mostrato di seguito.
XSLFSlideMaster slideMaster = ppt.getSlideMasters()[0];
Qui stiamo ottenendo lo schema diapositiva predefinito che si trova nella posizione 0 ° dell'array master diapositiva.
Step 3 - Ottieni il layout desiderato utilizzando il file getLayout() metodo del XSLFSlideMasterclasse. Questo metodo accetta un parametro in cui devi passare una delle variabili statiche del fileSlideLayoutclasse che rappresenta il nostro layout desiderato. Esistono diverse variabili in questa classe che rappresentano i layout delle diapositive.
Il frammento di codice seguente mostra come creare il titolo e il layout del contenuto:
XSLFSlideLayout contentlayout = slideMaster.getLayout(SlideLayout.TITLE_AND_CONTENT);
Step 4 - Crea una nuova diapositiva passando l'oggetto layout diapositiva come parametro.
XSLFSlide slide = ppt.createSlide(SlideLayout.TITLE_AND_CONTENT);
Step 5 - Seleziona un segnaposto utilizzando il getPlaceholder() metodo del XSLFSlideclasse. Questo metodo accetta un parametro intero. Passando1 ad esso, otterrai il file XSLFTextShapeoggetto, utilizzando il quale è possibile accedere all'area del contenuto della diapositiva. Impostare il titolo utilizzando il metodo setText () come mostrato di seguito.
XSLFTextShape title1 = slide1.getPlaceholder(1);
//setting the title init
title1.setText("Introduction");
Step 6 - Cancella il testo esistente nella diapositiva utilizzando il clearText() metodo del XSLFTextShape classe.
body.clearText();
Step 7 - Aggiungi un nuovo paragrafo utilizzando il addNewTextParagraph()metodo. Ora aggiungi una nuova sequenza di testo al paragrafo usando iladdNewTextRun()metodo. Ora alla sequenza di testo, aggiungi il testo usando ilsetText() metodo come mostrato di seguito.
body.addNewTextParagraph().addNewTextRun().setText("this is my first slide body");
Di seguito è riportato il programma completo per creare una diapositiva con layout del titolo in una presentazione -
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.xslf.usermodel.SlideLayout;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFSlideLayout;
import org.apache.poi.xslf.usermodel.XSLFSlideMaster;
import org.apache.poi.xslf.usermodel.XSLFTextShape;
public class TitleAndBodyLayout {
public static void main(String args[]) throws IOException {
//creating presentation
XMLSlideShow ppt = new XMLSlideShow();
//getting the slide master object
XSLFSlideMaster slideMaster = ppt.getSlideMasters()[0];
//select a layout from specified list
XSLFSlideLayout slidelayout = slideMaster.getLayout(SlideLayout.TITLE_AND_CONTENT);
//creating a slide with title and content layout
XSLFSlide slide = ppt.createSlide(slidelayout);
//selection of title place holder
XSLFTextShape title = slide.getPlaceholder(0);
//setting the title in it
title.setText("introduction");
//selection of body placeholder
XSLFTextShape body = slide.getPlaceholder(1);
//clear the existing text in the slide
body.clearText();
//adding new paragraph
body.addNewTextParagraph().addNewTextRun().setText("this is my first slide body");
//create a file object
File file = new File("contentlayout.pptx");
FileOutputStream out = new FileOutputStream(file);
//save the changes in a file
ppt.write(out);
System.out.println("slide cretated successfully");
out.close();
}
}
Salva il codice Java sopra come TitleLayout.java, quindi compilarlo ed eseguirlo dal prompt dei comandi come segue:
$javac TitleLayout.java
$java TitleLayout
Verrà compilato ed eseguito per generare il seguente output:
slide created successfully
Il documento PPT con la diapositiva del layout del titolo appena aggiunta appare come segue:
Allo stesso modo, puoi anche creare diapositive con layout diversi.