Учебники

Apache POI PPT — макеты слайдов

В предыдущей главе вы видели, как создавать пустые слайды и как добавлять в них слайды. В этой главе вы узнаете, как получить список доступных слайдов и как создать слайд с различными макетами.

Доступные макеты слайдов

Презентации 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 с недавно добавленным слайдом макета заголовка выглядит следующим образом:

TitleLayOut

Название и содержание Макет

Давайте создадим слайд в 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 с недавно добавленным слайдом макета заголовка выглядит следующим образом:

образ

Таким же образом, вы можете создавать слайды с различными макетами.