Apache POI PPT - 幻燈片管理



完成本章後,您將能夠刪除、重新排序以及對幻燈片執行讀寫操作。

更改幻燈片

我們可以使用XMLSlideShow類的setPageSize()方法更改幻燈片的頁面大小。

最初,建立一個如下所示的簡報:

File file = new File("C://POIPPT//Examples// TitleAndContentLayout.pptx");

//create presentation
XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));

使用XMLSlideShow類的getPageSize()方法獲取當前幻燈片的大小。

java.awt.Dimension pgsize = ppt.getPageSize();

使用setPageSize()方法設定頁面大小。

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,然後從命令提示符處編譯並執行它,如下所示:

$javac ChangingSlide.java
$java ChangingSlide

它將編譯並執行以生成以下輸出。

current page size of the presentation is : 
width :720
height :540
slide size changed to given dimensions

以下是更改幻燈片大小之前的簡報快照:

TitleAndContentLayout

更改大小後,幻燈片顯示如下:

SlideAfterChange

重新排序幻燈片

您可以使用setSlideOrder()方法設定幻燈片的順序。以下是設定幻燈片順序的步驟。

開啟一個現有的 PPT 文件,如下所示:

File file = new File("C://POIPPT//Examples//example1.pptx");
XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));

使用getSlides()方法獲取幻燈片,如下所示:

List<XSLFSlide> slides = ppt.getSlides();

從幻燈片陣列中選擇一個幻燈片,並使用setSlideOrder()方法更改其順序,如下所示:

//selecting the fourth slide
XSLFSlide selectesdslide = slides.get(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 java.util.List;
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 
      List<XSLFSlide> slides = ppt.getSlides();    
      
      //selecting the fourth slide
      XSLFSlide selectesdslide = slides.get(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,然後從命令提示符處編譯並執行它,如下所示:

$javac ReorderSlide.java
$java ReorderSlide

它將編譯並執行以生成以下輸出。

Reordering of the slides is done

以下是重新排序幻燈片之前的簡報快照:

Before Reorder

重新排序幻燈片後,簡報顯示如下。這裡我們選擇了帶有圖片的幻燈片並將其移動到頂部。

After Reorder

刪除幻燈片

您可以使用removeSlide()方法刪除幻燈片。請按照以下步驟刪除幻燈片。

使用XMLSlideShow類開啟現有的簡報,如下所示:

File file = new File("C://POIPPT//Examples//image.pptx");
XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));

使用removeSlide()方法刪除所需的幻燈片。此方法接受一個整數引數。將要刪除的幻燈片的索引傳遞給此方法。

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,然後從命令提示符處編譯並執行它,如下所示:

$javac Deleteslide.java
$java Deleteslide

它將編譯並執行以生成以下輸出:

reordering of the slides is done

以下是刪除幻燈片之前的簡報快照:

After Reorder

刪除幻燈片後,簡報顯示如下:

Delete Slides
廣告

© . All rights reserved.