java poi PAGELAYOUT_Apache POI PPT - 幻灯片布局( Slide Layouts)

Apache POI PPT - 幻灯片布局( Slide Layouts)

在上一章中,您已经了解了如何创建空幻灯片以及如何向其添加幻灯片。 在本章中,您将学习如何获取可用幻灯片列表,以及如何创建具有不同布局的幻灯片。

可用的幻灯片布局

PowerPoint演示文稿具有幻灯片布局,您可以选择所需的布局来编辑幻灯片。 首先,让我们找出所有可用幻灯片布局的列表。有不同的幻灯片母版,在每个幻灯片母版中,有几个幻灯片布局。

您可以使用XMLSlideShow类的getSlideMasters()方法获取幻灯片母版的列表。

您可以使用XSLFSlideMaster类的getSlideLayouts()方法从每个幻灯片母版中获取幻灯片布局列表。

您可以使用XSLFSlideLayout类的getType()方法从布局对象中获取幻灯片布局的名称。

Note - 所有这些类都属于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版本提供的一些示例幻灯片布局。

866332dd6cf08731337ebf77e336dc76.png

标题布局

让我们使用标题布局在PPT中创建幻灯片。 按照下面给出的步骤 -

Step 1 - 通过实例化XMLSlideShow类创建一个空的表示,如下所示。XMLSlideShow ppt = new XMLSlideShow();

Step 2 - 使用getSlideMasters()方法获取幻灯片母版列表。 然后,使用索引选择所需的幻灯片母版,如下所示。XSLFSlideMaster slideMaster = ppt.getSlideMasters()[0];

这里我们得到默认的幻灯片母版,它位于幻灯片母版数组的第 0 个位置。

Step 3 - 使用XSLFSlideMaster类的getLayout()方法获取所需的布局。 此方法接受一个参数,您必须传递SlideLayoutclass一个静态变量,该变量表示我们所需的布局。 这个类中有几个变量,每个变量代表一个幻灯片布局。

下面给出的代码片段显示了如何创建标题布局 -XSLFSlideLayout titleLayout = slideMaster.getLayout(SlideLayout.TITLE);

Step 4 - 通过将幻灯片布局对象作为参数传递来创建新幻灯片。XSLFSlide slide = ppt.createSlide(titleLayout);

Step 5 - 使用XSLFSlide类的getPlaceholder()方法选择占位符。 此方法接受整数参数。 通过向它传递0 ,您将获得XSLFTextShape对象,使用该对象可以访问幻灯片的标题文本区域。 使用setText()方法设置标题,如下所示。XSLFTextShape title1 = slide.getPlaceholder(0);

//setting the title init

title1.setText("IOWIKI");

以下是在演示文稿中创建带有标题布局的幻灯片的完整程序 -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("IOWIKI");

//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文档如下所示 -

7db2a91685957b6b3e880e37994c663e.png

标题和内容布局

让我们使用标题和内容布局在PPT中创建幻灯片。 请按照以下步骤操作。

Step 1 - 通过实例化XMLSlideShow类创建一个空的表示,如下所示。XMLSlideShow ppt = new XMLSlideShow();

Step 2 - 使用getSlideMasters()方法获取幻灯片母版列表。 使用索引选择所需的幻灯片母版,如下所示。XSLFSlideMaster slideMaster = ppt.getSlideMasters()[0];

这里我们得到默认的幻灯片母版,它位于幻灯片母版数组的第0个位置。

Step 3 - 使用XSLFSlideMaster类的getLayout()方法获取所需的布局。 此方法接受一个参数,您必须传递SlideLayout类的静态变量之一,该变量表示我们所需的布局。 此类中有几个变量代表幻灯片布局。

以下代码段显示了如何创建标题和内容布局 -XSLFSlideLayout contentlayout = slideMaster.getLayout(SlideLayout.TITLE_AND_CONTENT);

Step 4 - 通过将幻灯片布局对象作为参数传递来创建新幻灯片。XSLFSlide slide = ppt.createSlide(SlideLayout.TITLE_AND_CONTENT);

Step 5 - 使用XSLFSlide类的getPlaceholder()方法选择占位符。 此方法接受整数参数。 通过向它传递1 ,您将获得XSLFTextShape对象,使用该对象可以访问幻灯片的内容区域。 使用setText()方法设置标题,如下所示。XSLFTextShape title1 = slide1.getPlaceholder(1);

//setting the title init

title1.setText("Introduction");

Step 6 - 使用XSLFTextShape类的clearText()方法清除幻灯片中的现有文本。body.clearText();

Step 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文档如下所示 -

ce00085a47a4306654f521abc059bb6c.png

同样,您也可以创建具有不同布局的幻灯片。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值