Apache POI PPT - 幻灯片管理

完成本章后,您将能够在幻灯片上删除,重新排序和执行读写操作.

更改幻灯片

我们可以使用 XMLSlideShow 类的 setPageSize()方法更改幻灯片的页面大小.

最初创建一个演示如下所示 :

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

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

使用 XMLSlideShow 类的 getPageSize()方法获取当前幻灯片的大小.

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

重新排序幻灯片

您可以使用 se设置幻灯片顺序tSlideOrder()方法.下面给出了设置幻灯片顺序的步骤.

打开现有的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

下面的快照是删除幻灯片之前的演示文稿 :

重新排序后

删除幻灯片后,演示文稿显示如下 :

删除幻灯片