Apache POI PPT - 幻灯片管理
完成本章后,您将能够删除、重新排序幻灯片,并对幻灯片执行读写操作。
更改幻灯片
我们可以使用 XMLSlideShow 类的 setPageSize() 方法更改幻灯片的页面大小。
最初创建一个演示文稿,如下所示 −
File file = new File("C://POIPPT//Examples// TitleAndContentLayout.pptx");
//创建演示文稿
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 {
//创建文件对象
File file = new File("TitleAndContentLayout.pptx");
//创建演示文稿
XMLSlideShow ppt = new XMLSlideShow();
//获取当前页面大小
java.awt.Dimension pgsize = ppt.getPageSize();
int pgw = pgsize.width; //幻灯片宽度(以点为单位)
int pgh = pgsize.height; //幻灯片高度(以点为单位)
System.out.println("当前 PPT 页面大小为:");
System.out.println("宽度:" + pgw);
System.out.println("高度:" + pgh);
//设置新页面大小
ppt.setPageSize(new java.awt.Dimension(2048,1536));
//创建文件对象
FileOutputStream out = new FileOutputStream(file);
//将更改保存到文件
ppt.write(out);
System.out.println("幻灯片大小已更改为给定尺寸");
out.close();
}
}
将上述 Java 代码保存为 ChangingSlide.java,然后编译并从命令提示符执行,如下所示 −
$javac ChangingSlide.java $java ChangingSlide
它负责编译并执行以生成以下输出。
当前 PPT 页面大小为: 宽度:720 高度:540 幻灯片大小更改为给定尺寸
下面是更改幻灯片大小之前的演示文稿快照 −
更改大小后幻灯片显示如下 −
重新排序幻灯片
您可以使用 setSlideOrder() 方法设置幻灯片顺序。下面给出了设置幻灯片顺序的过程。
打开现有的 PPT 文档,如下所示 −
File file = new File("C://POIPPT//Examples//example1.pptx");
XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));
使用 getSlides() 方法获取幻灯片,如下所示 −
List<XSLFSlide> slides = ppt.getSlides();
从幻灯片数组中选择一张幻灯片,然后使用 setSlideOrder() 方法更改顺序,如下所示 −
//选择第四张幻灯片 XSLFSlide selectesdslide = slides.get(4); //将其置于顶部 ppt.setSlideOrder(selectesdslide, 1);
下面给出了重新排序演示文稿中幻灯片的完整程序 −
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
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 {
//打开现有演示文稿
File file = new File("example1.pptx");
XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));
//获取幻灯片
List<XSLFSlide> slides = ppt.getSlides();
//选择第四张幻灯片
XSLFSlide selectesdslide = slides.get(13);
//将其置于顶部
ppt.setSlideOrder(selectesdslide, 0);
//创建文件对象
FileOutputStream out = new FileOutputStream(file);
//将更改保存到文件
ppt.write(out);
out.close();
}
}
将上述 Java 代码保存为 ReorderSlide.java,然后从命令提示符编译并执行,如下所示 −
$javac ReorderSlide.java $java ReorderSlide
它负责编译并执行以生成以下输出。
幻灯片重新排序已完成
下面是重新排序幻灯片之前的演示文稿快照 −
重新排序幻灯片后,演示文稿显示如下。这里我们选择了带图片的幻灯片并将其移至顶部。
删除幻灯片
您可以使用 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 {
//打开现有幻灯片
File file = new File("image.pptx");
XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));
//删除幻灯片
ppt.removeSlide(1);
//创建文件对象
FileOutputStream out = new FileOutputStream(file);
//将更改保存到演示文稿
ppt.write(out);
out.close();
}
}
将上述 Java 代码保存为 Deleteslide.java,然后从命令提示符编译并执行,如下所示 −
$javac Deleteslide.java $java Deleteslide
它将编译并执行以生成以下输出 −
幻灯片的重新排序已完成
以下快照是删除幻灯片之前的演示文稿 −
删除幻灯片后,演示文稿显示如下 −

