Apache POI PPT - 幻燈片管理

2018-12-27 15:36 更新

完成本章后,您將能夠在幻燈片上刪除,重新排序和執(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

下面的快照是刪除幻燈片之前的演示文稿:

刪除幻燈片后,演示顯示如下:


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)