- Apache POI PPT 教程
- Apache POI PPT - 首页
- Apache POI PPT - 概述
- Apache POI PPT - Java API 版本
- Apache POI PPT - 安装
- Apache POI PPT - 类和方法
- Apache POI PPT - 演示文稿
- Apache POI PPT - 幻灯片布局
- Apache POI PPT - 幻灯片管理
- Apache POI PPT - 图片
- Apache POI PPT - 创建超链接
- Apache POI PPT - 读取形状
- Apache POI PPT - 文本格式化
- Apache POI PPT - 合并
- Apache POI PPT - PPT 转图片
- Apache POI PPT 资源
- Apache POI PPT - 快速指南
- Apache POI PPT - 有用资源
- Apache POI PPT - 讨论
Apache POI PPT - 幻灯片布局
在上一章节中,您已经学习了如何创建空幻灯片以及如何向其中添加幻灯片。在本节中,您将学习如何获取可用幻灯片的列表,以及如何使用不同的布局创建幻灯片。
可用的幻灯片布局
PowerPoint 演示文稿具有幻灯片布局,您可以选择所需的布局来编辑幻灯片。首先,让我们找出所有可用的幻灯片布局列表。
有不同的母版,每个母版中都有几个幻灯片布局。
您可以使用XMLSlideShow类的getSlideMasters()方法获取母版的列表。
您可以使用XSLFSlideMaster类的getSlideLayouts()方法从每个母版中获取幻灯片布局的列表。
您可以使用XSLFSlideLayout类的getType()方法从布局对象中获取幻灯片布局的名称。
注意 - 所有这些类都属于org.poi.xslf.usermodel包。
下面是获取PPT中可用幻灯片布局列表的完整程序:
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 - 使用XSLFSlideMaster类的getLayout()方法获取所需的布局。此方法接受一个参数,您必须向其中传递SlideLayout类的一个静态变量,该变量表示我们所需的布局。此类中有多个变量,每个变量代表一个幻灯片布局。
下面的代码片段显示了如何创建标题布局:
XSLFSlideLayout titleLayout = slideMaster.getLayout(SlideLayout.TITLE);
步骤4 - 通过传递幻灯片布局对象作为参数来创建一个新的幻灯片。
XSLFSlide slide = ppt.createSlide(titleLayout);
步骤5 - 使用XSLFSlide类的getPlaceholder()方法选择占位符。此方法接受一个整数参数。通过向其传递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().get(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("F://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 - 使用XSLFSlideMaster类的getLayout()方法获取所需的布局。此方法接受一个参数,您必须向其中传递SlideLayout类的一个静态变量,该变量表示我们所需的布局。此类中有多个变量代表幻灯片布局。
以下代码片段显示了如何创建标题和内容布局:
XSLFSlideLayout contentlayout = slideMaster.getLayout(SlideLayout.TITLE_AND_CONTENT);
步骤4 - 通过传递幻灯片布局对象作为参数来创建一个新的幻灯片。
XSLFSlide slide = ppt.createSlide(SlideLayout.TITLE_AND_CONTENT);
步骤5 - 使用XSLFSlide类的getPlaceholder()方法选择占位符。此方法接受一个整数参数。通过向其传递1,您将获得XSLFTextShape对象,可以使用它来访问幻灯片的内容区域。使用setText()方法设置标题,如下所示。
XSLFTextShape title1 = slide1.getPlaceholder(1); //setting the title init title1.setText("Introduction");
步骤6 - 使用XSLFTextShape类的clearText()方法清除幻灯片中现有的文本。
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().get(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文档如下所示:
同样,您也可以使用不同的布局创建幻灯片。