- 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文件如下所示:
同樣,您也可以使用不同的佈局建立幻燈片。