在上一章中,您已經(jīng)了解了如何創(chuàng)建空白幻燈片以及如何向其添加幻燈片。 在本章中,您將學習如何獲取可用幻燈片的列表,以及如何創(chuàng)建具有不同布局的幻燈片。
PowerPoint演示文稿具有幻燈片布局,您可以選擇所需的布局來編輯幻燈片。 首先,讓我們找出所有可用的幻燈片布局的列表。
有不同的幻燈片母版,在每個幻燈片母版中,有幾個幻燈片布局。
您可以使用 XMLSlideShow 類的 getSlideMasters()方法獲取幻燈片主題列表。
您可以使用 XSLFSlideMaster 類的 getSlideLayouts()方法從每個幻燈片母帶獲取幻燈片布局的列表。
您可以使用 XSLFSlideLayout 類的 getType()方法從布局對象獲取幻燈片布局的名稱。
注意:所有這些類都屬于 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 ,然后從命令提示符處編譯并執(zhí)行,如下所示:
$javac SlideLayouts.java $java SlideLayouts
它將編譯并執(zhí)行以生成以下輸出:
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中創(chuàng)建幻燈片。 請按照以下步驟操作:
步驟1 :通過實例化 XMLSlideShow 類創(chuàng)建一個空的演示文稿,如下所示:
XMLSlideShow ppt = new XMLSlideShow();
步驟2 :使用 getSlideMasters()方法獲取幻燈片主題列表。 此后,使用索引選擇所需的幻燈片母帶,如下所示:
XSLFSlideMaster slideMaster = ppt.getSlideMasters()[0];
這里我們得到的默認幻燈片母版是在幻燈片主數(shù)據(jù)的第0位置。
步驟3 :使用 XSLFSlideMaster 類的 getLayout()方法獲取所需的布局。 此方法接受一個參數(shù),您必須傳遞 SlideLayoutclass 的靜態(tài)變量之一,代表我們所需的布局。 這個類中有幾個變量,每個變量代表一個幻燈片布局。
下面的代碼片段顯示了如何創(chuàng)建標題布局:
XSLFSlideLayout titleLayout = slideMaster.getLayout(SlideLayout.TITLE);
步驟4 :通過將幻燈片布局對象作為參數(shù)傳遞來創(chuàng)建新幻燈片。
XSLFSlide slide = ppt.createSlide(titleLayout);
第5步:使用 XSLFSlide 類的 getPlaceholder()方法選擇占位符。 此方法接受整數(shù)參數(shù)。 通過傳遞0到它,你會得到 XSLFTextShape 對象,使用它可以訪問幻燈片的標題文本區(qū)域。 使用setText()方法設(shè)置標題,如下所示:
XSLFTextShape title1 = slide.getPlaceholder(0); //setting the title init title1.setText("Tutorials point");
下面給出的是在演示文稿中創(chuàng)建帶有標題布局的幻燈片的完整程序:
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("Tutorials point"); //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,然后從命令提示符處編譯并執(zhí)行它,如下所示:
$javac TitleLayout.java $java TitleLayout
它將編譯并執(zhí)行以生成以下輸出。
slide created successfully
帶有新添加的標題布局幻燈片的PPT文檔如下所示:
讓我們使用標題和內(nèi)容布局在PPT中創(chuàng)建幻燈片。 按照下面給出的步驟。
步驟1 :通過實例化 XMLSlideShow 類創(chuàng)建一個空的演示文稿,如下所示:
XMLSlideShow ppt = new XMLSlideShow();
步驟2 :使用 getSlideMasters()方法獲取幻燈片主題列表。 使用索引選擇所需的幻燈片母帶,如下所示:
XSLFSlideMaster slideMaster = ppt.getSlideMasters()[0];
這里我們得到的默認幻燈片母版是在幻燈片主數(shù)據(jù)的第0位置。
步驟3 :使用 XSLFSlideMaster 類的 getLayout()方法獲取所需的布局。 此方法接受一個參數(shù),您必須傳遞代表我們所需布局的 SlideLayout 類的靜態(tài)變量之一。 這個類中有幾個變量代表幻燈片布局。
以下代碼段顯示如何創(chuàng)建標題和內(nèi)容布局:
XSLFSlideLayout contentlayout = slideMaster.getLayout(SlideLayout.TITLE_AND_CONTENT);
步驟4 :通過將幻燈片布局對象作為參數(shù)傳遞來創(chuàng)建新幻燈片。
XSLFSlide slide = ppt.createSlide(SlideLayout.TITLE_AND_CONTENT);
第5步:使用 XSLFSlide 類的 getPlaceholder()方法選擇占位符。 此方法接受整數(shù)參數(shù)。 通過傳遞1給它,你會得到 XSLFTextShape 對象,使用它可以訪問幻燈片的內(nèi)容區(qū)域。 使用setText()方法設(shè)置標題,如下所示:
XSLFTextShape title1 = slide1.getPlaceholder(1); //setting the title init title1.setText("Introduction");
步驟6 :使用 XSLFTextShape 類別的 clearText()方法清除投影片中現(xiàn)有的文字。
body.clearText();
步驟7 :使用 addNewTextParagraph()方法添加新段落。 現(xiàn)在使用 addNewTextRun()方法向段落中添加一個新的文本運行。 現(xiàn)在到文本運行,使用 setText()方法添加文本,如下所示:
body.addNewTextParagraph().addNewTextRun().setText("this is my first slide body");
下面給出的是在演示文稿中創(chuàng)建帶有標題布局的幻燈片的完整程序:
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 ,然后從命令提示符處編譯并執(zhí)行它,如下所示:
$javac TitleLayout.java $java TitleLayout
它將編譯并執(zhí)行以生成以下輸出:
slide created successfully
帶有新添加的標題布局幻燈片的PPT文檔如下所示:
以同樣的方式,您也可以創(chuàng)建具有不同布局的幻燈片。
更多建議: