Apache POI PPT - Folienlayouts
Im vorherigen Kapitel haben Sie gesehen, wie Sie leere Folien erstellen und Folien hinzufügen. In diesem Kapitel erfahren Sie, wie Sie die Liste der verfügbaren Folien abrufen und eine Folie mit verschiedenen Layouts erstellen.
Verfügbare Folienlayouts
PowerPoint-Präsentationen verfügen über Folienlayouts, und Sie können ein gewünschtes Layout zum Bearbeiten einer Folie auswählen. Lassen Sie uns zunächst die Liste aller verfügbaren Folienlayouts herausfinden.
Es gibt verschiedene Folienmaster und in jedem Folienmaster gibt es mehrere Folienlayouts.
Die Liste der Folienmaster erhalten Sie mit getSlideMasters() Methode der XMLSlideShow Klasse.
Sie können die Liste der Folienlayouts von jedem Folienmaster mit dem abrufen getSlideLayouts() Methode der XSLFSlideMaster Klasse.
Den Namen des Folienlayouts können Sie mit dem über das Layoutobjekt abrufen getType() Methode der XSLFSlideLayout Klasse.
Note- Alle diese Klassen gehören zum Paket org.poi.xslf.usermodel .
Im Folgenden finden Sie das vollständige Programm, um die Liste der verfügbaren Folienlayouts in der PPT abzurufen.
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());
}
}
}
}
Speichern Sie den obigen Java-Code als SlideLayouts.java , und kompilieren Sie es dann und führen Sie es an der Eingabeaufforderung wie folgt aus:
$javac SlideLayouts.java
$java SlideLayouts
Es wird kompiliert und ausgeführt, um die folgende Ausgabe zu generieren:
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
Im Folgenden sind einige der Beispielfolienlayouts aufgeführt, die mit MS-Office 360, Ausgabe 2013, verfügbar sind.
Titellayout
Lassen Sie uns eine Folie in einer PPT mithilfe des Titellayouts erstellen. Befolgen Sie die unten angegebenen Schritte -
Step 1 - Erstellen Sie eine leere Präsentation, indem Sie die XMLSlideShow Klasse wie unten gezeigt.
XMLSlideShow ppt = new XMLSlideShow();
Step 2 - Holen Sie sich die Liste der Folienmaster mit der getSlideMasters()Methode. Wählen Sie anschließend den gewünschten Folienmaster anhand des unten gezeigten Index aus.
XSLFSlideMaster slideMaster = ppt.getSlideMasters()[0];
Hier bekommen wir die Standard - Folienmaster , die in der 0 - ten Stelle des Folienmaster - Array.
Step 3 - Holen Sie sich das gewünschte Layout mit dem getLayout() Methode der XSLFSlideMasterKlasse. Diese Methode akzeptiert einen Parameter, bei dem Sie eine der statischen Variablen von übergeben müssenSlideLayoutclass, die unser gewünschtes Layout darstellt. In dieser Klasse gibt es mehrere Variablen, wobei jede Variable ein Folienlayout darstellt.
Das unten angegebene Code-Snippet zeigt, wie Sie ein Titellayout erstellen.
XSLFSlideLayout titleLayout = slideMaster.getLayout(SlideLayout.TITLE);
Step 4 - Erstellen Sie eine neue Folie, indem Sie ein Folienlayoutobjekt als Parameter übergeben.
XSLFSlide slide = ppt.createSlide(titleLayout);
Step 5 - Wählen Sie einen Platzhalter mit der getPlaceholder() Methode der XSLFSlideKlasse. Diese Methode akzeptiert einen ganzzahligen Parameter. Durch das Vorbeigehen0 dazu bekommst du das XSLFTextShapeObjekt, mit dem Sie auf den Titeltextbereich der Folie zugreifen können. Legen Sie den Titel mit der Methode setText () wie unten gezeigt fest.
XSLFTextShape title1 = slide.getPlaceholder(0);
//setting the title init
title1.setText("Tutorials point");
Im Folgenden finden Sie das vollständige Programm zum Erstellen einer Folie mit Titellayout in einer Präsentation.
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();
}
}
Speichern Sie den obigen Java-Code als TitleLayout.java, kompilieren Sie ihn und führen Sie ihn an der Eingabeaufforderung wie folgt aus:
$javac TitleLayout.java
$java TitleLayout
Es wird kompiliert und ausgeführt, um die folgende Ausgabe zu generieren.
slide created successfully
Das PPT-Dokument mit der neu hinzugefügten Titellayoutfolie wird wie folgt angezeigt:
Titel- und Inhaltslayout
Lassen Sie uns eine Folie in einer PPT mit Titel- und Inhaltslayout erstellen. Befolgen Sie die unten angegebenen Schritte.
Step 1 - Erstellen Sie eine leere Präsentation, indem Sie die XMLSlideShow Klasse wie unten gezeigt.
XMLSlideShow ppt = new XMLSlideShow();
Step 2 - Holen Sie sich die Liste der Folienmaster mit der getSlideMasters()Methode. Wählen Sie den gewünschten Folienmaster anhand des unten gezeigten Index aus.
XSLFSlideMaster slideMaster = ppt.getSlideMasters()[0];
Hier erhalten wir den Standard-Folienmaster, der sich an der 0. Stelle des Folienmaster-Arrays befindet.
Step 3 - Holen Sie sich das gewünschte Layout mit dem getLayout() Methode der XSLFSlideMasterKlasse. Diese Methode akzeptiert einen Parameter, bei dem Sie eine der statischen Variablen von übergeben müssenSlideLayoutKlasse, die unser gewünschtes Layout darstellt. In dieser Klasse gibt es mehrere Variablen, die Folienlayouts darstellen.
Das folgende Codeausschnitt zeigt, wie Titel- und Inhaltslayout erstellt werden:
XSLFSlideLayout contentlayout = slideMaster.getLayout(SlideLayout.TITLE_AND_CONTENT);
Step 4 - Erstellen Sie eine neue Folie, indem Sie das Folienlayoutobjekt als Parameter übergeben.
XSLFSlide slide = ppt.createSlide(SlideLayout.TITLE_AND_CONTENT);
Step 5 - Wählen Sie einen Platzhalter mit der getPlaceholder() Methode der XSLFSlideKlasse. Diese Methode akzeptiert einen ganzzahligen Parameter. Durch das Vorbeigehen1 dazu bekommst du das XSLFTextShapeObjekt, mit dem Sie auf den Inhaltsbereich der Folie zugreifen können. Legen Sie den Titel mit der Methode setText () wie unten gezeigt fest.
XSLFTextShape title1 = slide1.getPlaceholder(1);
//setting the title init
title1.setText("Introduction");
Step 6 - Löschen Sie den vorhandenen Text in der Folie mit der clearText() Methode der XSLFTextShape Klasse.
body.clearText();
Step 7 - Fügen Sie einen neuen Absatz mit dem hinzu addNewTextParagraph()Methode. Fügen Sie nun dem Absatz einen neuen Textlauf hinzu, indem Sie dieaddNewTextRun()Methode. Fügen Sie nun zum Textlauf Text mit der Taste hinzusetText() Methode wie unten gezeigt.
body.addNewTextParagraph().addNewTextRun().setText("this is my first slide body");
Im Folgenden finden Sie das vollständige Programm zum Erstellen einer Folie mit Titellayout in einer Präsentation.
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();
}
}
Speichern Sie den obigen Java-Code als TitleLayout.java, und kompilieren Sie es dann und führen Sie es an der Eingabeaufforderung wie folgt aus:
$javac TitleLayout.java
$java TitleLayout
Es wird kompiliert und ausgeführt, um die folgende Ausgabe zu generieren:
slide created successfully
Das PPT-Dokument mit der neu hinzugefügten Titellayoutfolie wird wie folgt angezeigt:
Auf die gleiche Weise können Sie auch Folien mit unterschiedlichen Layouts erstellen.