完成本章后,您將能夠在幻燈片上刪除,重新排序和執(zhí)行讀取和寫入操作。
我們可以使用 XMLSlideShow 類的 setPageSize()方法更改幻燈片的頁(yè)面大小。
最初創(chuàng)建演示文稿如下所示:
File file=new File("C://POIPPT//Examples// TitleAndContentLayout.pptx"); //create presentation XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));
使用 XMLSlideShow 類的 getPageSize()方法獲取當(dāng)前幻燈片的大小。
java.awt.Dimension pgsize = ppt.getPageSize();
使用 setPageSize()方法設(shè)置頁(yè)面的大小。
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{ //create file object File file = new File("TitleAndContentLayout.pptx"); //create presentation XMLSlideShow ppt = new XMLSlideShow(); //getting the current page size java.awt.Dimension pgsize = ppt.getPageSize(); int pgw = pgsize.width; //slide width in points int pgh = pgsize.height; //slide height in points System.out.println("current page size of the PPT is:"); System.out.println("width :" + pgw); System.out.println("height :" + pgh); //set new page size ppt.setPageSize(new java.awt.Dimension(2048,1536)); //creating file object FileOutputStream out = new FileOutputStream(file); //saving the changes to a file ppt.write(out); System.out.println("slide size changed to given dimentions "); out.close(); } }
將上述Java代碼保存為 ChangingSlide.java ,然后從命令提示符處編譯并執(zhí)行它,如下所示:
$javac ChangingSlide.java $java ChangingSlide
它將編譯并執(zhí)行以生成以下輸出。
current page size of the presentation is : width :720 height :540 slide size changed to given dimensions
以下是更改幻燈片大小之前演示文稿的快照:
更改其大小后,幻燈片顯示如下:
您可以使用 setSlideOrder()方法設(shè)置幻燈片順序。 下面給出了設(shè)置幻燈片順序的過程。
打開現(xiàn)有PPT文檔,如下所示:
File file=new File("C://POIPPT//Examples//example1.pptx"); XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));
使用 getSlides()方法獲取幻燈片,如下所示:
XSLFSlide[] slides =ppt.getSlides();
從幻燈片數(shù)組中選擇一張幻燈片,然后使用 setSlideOrder()方法更改順序,如下所示:
//selecting the fourth slide XSLFSlide selectesdslide= slides[4]; //bringing it to the top ppt.setSlideOrder(selectesdslide, 1);
下面給出了在演示文稿中重新排序幻燈片的完整程序:
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; 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{ //opening an existing presentation File file=new File("example1.pptx"); XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file)); //get the slides XSLFSlide[] slides = ppt.getSlides(); //selecting the fourth slide XSLFSlide selectesdslide = slides[13]; //bringing it to the top ppt.setSlideOrder(selectesdslide, 0); //creating an file object FileOutputStream out = new FileOutputStream(file); //saving the changes to a file ppt.write(out); out.close(); } }
將上述Java代碼另存為 ReorderSlide.java ,然后從命令提示符處編譯并執(zhí)行,如下所示:
$javac ReorderSlide.java $java ReorderSlide
它將編譯并執(zhí)行以生成以下輸出。
Reordering of the slides is done
下面是重新排序幻燈片之前的演示的快照:
重新排序幻燈片后,演示文稿如下所示。 在這里,我們選擇了幻燈片與圖像,并將其移動(dòng)到頂部。
您可以使用 removeSlide()方法刪除幻燈片。 按照以下步驟刪除幻燈片。
使用 XMLSlideShow 類打開現(xiàn)有演示文稿,如下所示:
File file=new File("C://POIPPT//Examples//image.pptx"); XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));
使用 removeSlide()方法刪除所需的幻燈片。 此方法接受整數(shù)參數(shù)。 將要?jiǎng)h除的幻燈片的索引傳遞給此方法。
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{ //Opening an existing slide File file=new File("image.pptx"); XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file)); //deleting a slide ppt.removeSlide(1); //creating a file object FileOutputStream out = new FileOutputStream(file); //Saving the changes to the presentation ppt.write(out); out.close(); } }
將上述Java代碼保存為 Deleteslide.java ,然后從命令提示符處編譯并執(zhí)行,如下所示:
$javac Deleteslide.java $java Deleteslide
它將編譯并執(zhí)行以生成以下輸出:
reordering of the slides is done
下面的快照是刪除幻燈片之前的演示文稿:
刪除幻燈片后,演示顯示如下:
更多建議: