В предыдущей главе вы видели, как создавать пустые слайды и как добавлять в них слайды. В этой главе вы узнаете, как получить список доступных слайдов и как создать слайд с различными макетами.
Доступные макеты слайдов
Презентации PowerPoint имеют макеты слайдов, и вы можете выбрать нужный макет для редактирования слайда. Прежде всего, давайте выясним список всех доступных макетов слайдов.
-
Существуют разные мастера слайдов, и в каждом из них есть несколько макетов слайдов.
-
Вы можете получить список мастеров слайдов, используя метод getSlideMasters () класса XMLSlideShow .
-
Вы можете получить список макетов слайдов от каждого мастера слайдов, используя метод getSlideLayouts () класса XSLFSlideMaster .
-
Вы можете получить имя макета слайда из объекта макета, используя метод getType () класса XSLFSlideLayout .
Существуют разные мастера слайдов, и в каждом из них есть несколько макетов слайдов.
Вы можете получить список мастеров слайдов, используя метод getSlideMasters () класса XMLSlideShow .
Вы можете получить список макетов слайдов от каждого мастера слайдов, используя метод getSlideLayouts () класса XSLFSlideMaster .
Вы можете получить имя макета слайда из объекта макета, используя метод getType () класса XSLFSlideLayout .
Примечание. Все эти классы принадлежат пакету org.poi.xslf.usermodel .
Ниже приведена полная программа для получения списка доступных макетов слайдов в 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()); } } } }
Сохраните приведенный выше Java-код как SlideLayouts.java , а затем скомпилируйте и выполните его из командной строки следующим образом:
$javac SlideLayouts.java $java SlideLayouts
Это скомпилирует и выполнит, чтобы произвести следующий вывод —
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
Ниже показаны некоторые примеры макетов слайдов, доступных в MS-Office 360, выпуск 2013 года.
Название макета
Давайте создадим слайд в PPT, используя макет заголовка. Следуйте инструкциям ниже
Шаг 1. Создайте пустую презентацию, создав экземпляр класса XMLSlideShow, как показано ниже.
XMLSlideShow ppt = new XMLSlideShow();
Шаг 2 — Получить список мастеров слайдов, используя метод getSlideMasters () . После этого выберите нужный мастер слайдов, используя указатель, как показано ниже.
XSLFSlideMaster slideMaster = ppt.getSlideMasters()[0];
Здесь мы получаем мастер слайдов по умолчанию, который находится в 0- м месте массива мастеров слайдов.
Шаг 3 — Получить нужный макет с помощью метода getLayout () класса XSLFSlideMaster . Этот метод принимает параметр, в котором вы должны передать одну из статических переменных класса SlideLayout , которая представляет наш желаемый макет. В этом классе есть несколько переменных, где каждая переменная представляет макет слайда.
Приведенный ниже фрагмент кода показывает, как создать макет заголовка.
XSLFSlideLayout titleLayout = slideMaster.getLayout(SlideLayout.TITLE);
Шаг 4 — Создайте новый слайд, передав объект макета слайда в качестве параметра.
XSLFSlide slide = ppt.createSlide(titleLayout);
Шаг 5 — Выберите заполнитель, используя метод getPlaceholder () класса XSLFSlide . Этот метод принимает целочисленный параметр. Передав ему 0 , вы получите объект XSLFTextShape , с помощью которого вы можете получить доступ к текстовой области заголовка слайда. Установите заголовок, используя метод setText (), как показано ниже.
XSLFTextShape title1 = slide.getPlaceholder(0); //setting the title init title1.setText("Tutorials point");
Ниже приведена полная программа для создания слайда с макетом заголовка в презентации —
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(); } }
Сохраните приведенный выше Java-код как TitleLayout.java, а затем скомпилируйте и выполните его из командной строки следующим образом:
$javac TitleLayout.java $java TitleLayout
Он будет скомпилирован и выполнен для генерации следующего вывода.
slide created successfully
Документ PPT с недавно добавленным слайдом макета заголовка выглядит следующим образом:
Название и содержание Макет
Давайте создадим слайд в PPT, используя заголовок и макет контента. Следуйте инструкциям ниже.
Шаг 1. Создайте пустую презентацию, создав экземпляр класса XMLSlideShow, как показано ниже.
XMLSlideShow ppt = new XMLSlideShow();
Шаг 2 — Получить список мастеров слайдов, используя метод getSlideMasters () . Выберите нужный мастер слайдов, используя указатель, как показано ниже.
XSLFSlideMaster slideMaster = ppt.getSlideMasters()[0];
Здесь мы получаем мастер слайдов по умолчанию, который находится в 0-м месте массива мастеров слайдов.
Шаг 3 — Получить нужный макет с помощью метода getLayout () класса XSLFSlideMaster . Этот метод принимает параметр, в котором вы должны передать одну из статических переменных класса SlideLayout, которая представляет наш желаемый макет. В этом классе есть несколько переменных, которые представляют макеты слайдов.
В следующем фрагменте кода показано, как создать заголовок и макет содержимого.
XSLFSlideLayout contentlayout = slideMaster.getLayout(SlideLayout.TITLE_AND_CONTENT);
Шаг 4 — Создайте новый слайд, передав объект макета слайда в качестве параметра.
XSLFSlide slide = ppt.createSlide(SlideLayout.TITLE_AND_CONTENT);
Шаг 5 — Выберите заполнитель, используя метод getPlaceholder () класса XSLFSlide . Этот метод принимает целочисленный параметр. Передав ему 1 , вы получите объект XSLFTextShape , с помощью которого вы можете получить доступ к области содержимого слайда. Установите заголовок, используя метод setText (), как показано ниже.
XSLFTextShape title1 = slide1.getPlaceholder(1); //setting the title init title1.setText("Introduction");
Шаг 6 — Очистите существующий текст на слайде, используя метод clearText () класса XSLFTextShape .
body.clearText();
Шаг 7 — Добавьте новый абзац, используя метод addNewTextParagraph () . Теперь добавьте новый текстовый прогон к абзацу, используя метод addNewTextRun () . Теперь, чтобы запустить текст, добавьте текст, используя метод setText (), как показано ниже.
body.addNewTextParagraph().addNewTextRun().setText("this is my first slide body");
Ниже приведена полная программа для создания слайда с макетом заголовка в презентации —
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(); } }
Сохраните приведенный выше Java-код как TitleLayout.java , а затем скомпилируйте и выполните его из командной строки следующим образом:
$javac TitleLayout.java $java TitleLayout
Это скомпилирует и выполнит, чтобы произвести следующий вывод —
slide created successfully
Документ PPT с недавно добавленным слайдом макета заголовка выглядит следующим образом:
Таким же образом, вы можете создавать слайды с различными макетами.