Учебники

Apache POI PPT — Управление слайдами

После прочтения этой главы вы сможете удалять, изменять порядок и выполнять операции чтения и записи на слайде.

Смена слайда

Мы можем изменить размер страницы слайда, используя метод setPageSize () класса XMLSlideShow .

Сначала создайте презентацию, как показано ниже —

File file = new File("C://POIPPT//Examples// TitleAndContentLayout.pptx");

//create presentation
XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));

Получите размер текущего слайда, используя метод getPageSize () класса XMLSlideShow .

java.awt.Dimension pgsize = ppt.getPageSize();

Установите размер страницы с помощью метода setPageSize () .

ppt.setPageSize(new java.awt.Dimension(1024, 768));

Полная программа для изменения размера слайда приведена ниже —

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.xslf.usermodel.XMLSlideShow;

public class ChangingSlide {
   
   public static void main(String args[]) throws IOException {

      //create file object
      File file = new File("TitleAndContentLayout.pptx");
	 
      //create presentation
      XMLSlideShow ppt = new XMLSlideShow();
      
      //getting the current page size
      java.awt.Dimension pgsize = ppt.getPageSize();
      int pgw = pgsize.width; //slide width in points
      int pgh = pgsize.height; //slide height in points
      
      System.out.println("current page size of the PPT is:");
      System.out.println("width :" + pgw);
      System.out.println("height :" + pgh);
      
      //set new page size
      ppt.setPageSize(new java.awt.Dimension(2048,1536));
      
      //creating file object
      FileOutputStream out = new FileOutputStream(file);
      
      //saving the changes to a file
      ppt.write(out);
      System.out.println("slide size changed to given dimentions ");
      out.close();	
   }
}

Сохраните приведенный выше Java-код как ChangingSlide.java , а затем скомпилируйте и выполните его из командной строки следующим образом:

$javac ChangingSlide.java
$java ChangingSlide

Он будет скомпилирован и выполнен для генерации следующего вывода.

current page size of the presentation is : 
width :720
height :540
slide size changed to given dimensions

Ниже приведен снимок презентации до изменения размера слайда.

TitleAndContentLayout

После изменения размера слайд выглядит следующим образом:

SlideAfterChange

Изменение порядка слайдов

Вы можете установить порядок слайдов, используя метод setSlideOrder () . Ниже приведена процедура установки порядка слайдов.

Откройте существующий документ PPT, как показано ниже —

File file = new File("C://POIPPT//Examples//example1.pptx");
XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));

Получите слайды, используя метод getSlides (), как показано ниже —

XSLFSlide[] slides = ppt.getSlides();

Выберите слайд из массива слайдов и измените порядок, используя метод setSlideOrder (), как показано ниже —

//selecting the fourth slide
XSLFSlide selectesdslide = slides[4];

//bringing it to the top
ppt.setSlideOrder(selectesdslide, 1);

Ниже приведена полная программа для изменения порядка слайдов в презентации.

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;

public class ReorderSlide {	
   
   public static void main(String args[]) throws IOException {
   
      //opening an existing presentation
      File file = new File("example1.pptx");
      XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));
      
      //get the slides 
      XSLFSlide[] slides = ppt.getSlides();    
      
      //selecting the fourth slide
      XSLFSlide selectesdslide = slides[13];
      
      //bringing it to the top
      ppt.setSlideOrder(selectesdslide, 0);
      
      //creating an file object 
      FileOutputStream out = new FileOutputStream(file);
	  
      //saving the changes to a file
      ppt.write(out);
      out.close();	
   }
}

Сохраните приведенный выше Java-код как ReorderSlide.java , а затем скомпилируйте и выполните его из командной строки следующим образом:

$javac ReorderSlide.java
$java ReorderSlide

Он будет скомпилирован и выполнен для генерации следующего вывода.

Reordering of the slides is done

Ниже приведен снимок презентации перед изменением порядка слайдов.

Перед повторным заказом

После изменения порядка слайдов презентация выглядит следующим образом. Здесь мы выбрали слайд с изображением и переместили его наверх.

После повторного заказа

Удаление слайдов

Вы можете удалить слайды, используя метод removeSlide () . Следуйте инструкциям ниже, чтобы удалить слайды.

Откройте существующую презентацию, используя класс XMLSlideShow, как показано ниже —

File file = new File("C://POIPPT//Examples//image.pptx");
XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));

Удалите нужный слайд, используя метод removeSlide () . Этот метод принимает целочисленный параметр. Передайте индекс слайда, который должен быть удален этому методу.

ppt.removeSlide(1);

Ниже приведена программа для удаления слайдов из презентации —

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.xslf.usermodel.XMLSlideShow;

public class Deleteslide { 
   
   public static void main(String args[]) throws IOException {
   
      //Opening an existing slide
      File file = new File("image.pptx");
      XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));
      
      //deleting a slide
      ppt.removeSlide(1);
      
      //creating a file object
      FileOutputStream out = new FileOutputStream(file);
      
      //Saving the changes to the presentation
      ppt.write(out);
      out.close();	
   }
}

Сохраните приведенный выше Java-код как Deleteslide.java , а затем скомпилируйте и выполните его из командной строки следующим образом:

$javac Deleteslide.java
$java Deleteslide

Это скомпилирует и выполнит, чтобы произвести следующий вывод —

reordering of the slides is done

Снимок ниже представляет презентацию перед удалением слайда —

После повторного заказа

После удаления слайда презентация выглядит следующим образом: