Apache POI PPT - 快速指南
Apache POI PPT - Overview
很多时候,需要一个软件应用程序来生成Microsoft Office文件格式的报告。 有时,甚至希望应用程序接收MS-Office文件作为输入数据。
任何想要生成MS Office文件作为输出的Java程序员都必须使用预定义的只读API来执行此操作。
什么是Apache POI?
Apache POI是一种流行的API,允许程序员使用Java程序创建,修改和显示MS-Office文件。 它是由Apache Software Foundation开发和分发的开源库。 它包含用于将用户输入数据或文件解码为MS Office文档的类和方法。
Apache POI的组件
Apache POI包含用于处理MS-Office的所有OLE2复合文档的类和方法。 该API的组件列表如下 -
POIFS (Poor Obfuscation Implementation File System) - 该组件是所有其他POI元素的基本因素。 它用于显式读取不同的文件。
HSSF (Horrible SpreadSheet Format) - 用于读取和写入.xls格式的MS-Excel文件。
XSSF (XML SpreadSheet Format) - 用于MS-Excel的.xlsx文件格式。
HPSF (Horrible Property Set Format) - 用于提取MS-Office文件的属性集。
HWPF (Horrible Word Processor Format) - 用于读取和写入MS-Word的.doc扩展文件。
XWPF (XML Word Processor Format) - 用于读写MS-Word的.docx扩展文件。
HSLF (Horrible Slide Layout Format) - 用于阅读,创建和编辑PowerPoint演示文稿。
HDGF (Horrible DiaGram Format) - 它包含MS-Visio二进制文件的类和方法。
HPBF (Horrible PuBlisher Format) - 用于读写MS-Publisher文件。
本教程将指导您完成使用Java处理Microsoft PowerPoint演示文稿的过程。 因此,讨论仅限于XSLF component.
Note - 旧版本的POI支持二进制文件格式,如doc,xls,ppt等。版本3.5以后,POI支持MS-Office的OOXML文件格式,如docx,xlsx,pptx等。
Flavors of Java PPT API
本章将向您介绍Java PowerPoint API的一些特性及其功能。 有许多供应商提供与Java PPT相关的API; 其中一些在本章中被考虑。
Aspose Slides for Java
Aspose slide for Java是纯粹许可的Java PPT API,由供应商Aspose开发和分发。 该API的最新版本是2014年7月发布的8.1.2。它是一个丰富而繁重的API(普通Java类和AWT类的组合),用于设计可以读取,写入和管理幻灯片的PPT组件。
该API的常见用途如下 -
- Build dynamic presentations
- 渲染和打印高保真演示文稿
- 生成,编辑,转换和打印演示文稿
Apache POI
Apache POI是Apache Software Foundation提供的100%开源库。 大多数中小型应用程序开发人员严重依赖Apache POI(HSLF + XSLF)。 它支持PPT库的所有基本功能; 然而,渲染和文本提取是其主要特征。 下面给出了PPT的Apache POI架构。

Apache POI PPT - Installation
本章将指导您完成在基于Windows和Linux的系统上设置Apache POI的过程。 Apache POI可以轻松安装并与您当前的Java环境集成,只需几个简单的步骤,无需任何复杂的设置过程。 安装需要用户管理。
系统需求 (System Requirements)
JDK | Java SE 2 JDK 1.5或以上版本 |
Memory | 1 GB RAM(推荐) |
磁盘空间 | 没有最低要求 |
操作系统版本 | Windows XP或更高版本,Linux |
现在让我们继续安装Apache POI的步骤。
第1步:验证Java安装
首先,您需要在系统上安装Java软件开发工具包(SDK)。 要验证这一点,请根据您正在使用的平台执行以下两个命令中的任何一个。
如果Java安装已正确完成,那么它将显示Java安装的当前版本和规范。 下表给出了示例输出。
平台 | 命令 | 样本输出 |
---|---|---|
Windows | 打开命令控制台并输入 - \》java –version | Java版“1.7.0_60” Java(TM)SE运行时 环境(建立1.7.0_60-b19) Java Hotspot(TM)64位服务器 VM(build 24.60-b09,混合模式) |
Linux | 打开命令终端并输入 - $java –version | java版“1.7.0_25” 打开JDK运行时环境(rhel-2.3.10.4.el6_4-x86_64) 打开JDK 64位服务器VM(内置23.7-b01,混合模式) |
我们假设本教程的读者在其系统上安装了Java SDK版本1.7.0_60。
如果您没有Java SDK,请从https://www.oracle.com/technetwork/java/javase/downloads/index.html下载其当前版本并进行安装。
第2步:设置Java环境
将环境变量JAVA_HOME设置为指向计算机上安装Java的基本目录位置。 例如,
平台 | 描述 |
---|---|
Windows | 将JAVA_HOME设置为C:\ProgramFiles\java\jdk1.7.0_60 |
Linux | 导出JAVA_HOME =/usr/local/java-current |
将Java编译器位置的完整路径附加到系统路径。
平台 | 描述 |
---|---|
Windows | 将字符串“C:\Program Files\Java\jdk1.7.0_60\bin”附加到系统变量PATH的末尾。 |
Linux | 导出PATH = $ PATH:$ JAVA_HOME/bin/ |
如上所述,从命令提示符执行命令java -version 。
第3步:安装Apache POI库
从https://poi.apache.org/download.html下载最新版本的Apache POI,并将其内容解压缩到一个文件夹,从该文件夹可以将所需的库链接到您的Java程序。 我们假设文件收集在C盘上的文件夹中。
下图显示了下载文件夹中的目录和文件结构 -


将上图中突出显示的五个jars的完整路径添加到CLASSPATH。
平台 | 描述 |
---|---|
Windows | 将以下字符串附加到用户变量CLASSPATH的末尾 - “C:\POI-3.9\POI-3.9-20121203.jar;” “C:\POI-3.9\POI-OOXML-3.9-20121203.jar;” “C:\POI-3.9\POI-OOXML-架构 - 3.9-20121203.jar;” “C:\POI-3.9\OOXML-LIB\DOM4J-1.6.1.jar;” “C:\POI-3.9\OOXML-LIB \的xmlbeans-2.3.0.jar;” |
Linux | 导出CLASSPATH = $ CLASSPATH: /usr/share/poi-3.9/poi-3.9-20121203.tar: /usr/share/poi-3.9/poi-ooxml-schemas-3.9-20121203.tar: /usr/share/poi-3.9/poi-ooxml-3.9-20121203.tar: /usr/share/poi-3.9/ooxml-lib/dom4j-1.6.1.tar: /usr/share/poi-3.9/ooxml-lib/xmlbeans-2.3.0.tar |
pom.xml
以下是用于运行本教程中的程序的pom.xml文件。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>ApachePoiPPT</groupId>
<artifactId>ApachePoiPPT</artifactId>
<version>0.0.1-SNAPSHOT</version>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.9</version>
</dependency>
</dependencies>
</project>
Apache POI PPT - Classes and Methods
在本章中,我们将了解Apache POI API下的一些类和方法,这些类和方法对于使用Java程序处理PPT文件至关重要。
演讲(Presentation)
要创建和管理演示文稿,请在包org.apache.poi.xslf.usermodel创建一个名为XMLSlideShow的类。 下面给出了一些重要的方法和这个类的构造函数。
Class - XMLSlideShow
Package - org.apache.poi.xslf.usermodel
S.No | 构造函数和描述 |
---|---|
1 | XMLSlideShow(java.io.InputStream inputStream) 您可以通过将输入流类对象传递给它来实例化此类。 |
S.No | 方法和描述 |
---|---|
1 | int addPicture (byte[] pictureData, int format) 使用此方法,您可以将图片添加到演示文稿中。 |
2 | XSLFSlide createSlide() 在演示文稿中创建空白幻灯片。 |
3 | XSLFSlide createSlide(XSLFSlideLayout layout) 创建具有给定幻灯片布局的幻灯片。 |
4 | java.util.List 《XSLFPictureData》 getAllPictures() 返回演示文稿中所有图片的数组。 |
5 | java.awt.Dimension getPageSize() 使用此方法,您可以了解当前页面大小。 |
6 | XSLFSlideMaster[] getSlideMasters() 返回演示文稿中所有幻灯片的数组。 |
7 | XSLFSlide[] getSlides() 返回演示文稿中的所有幻灯片。 |
8 | XSLFSlide removeSlide(int index) 使用此方法,您可以从演示文稿中删除幻灯片。 |
9 | void setPageSize(java.awt.Dimension pgSize) 使用此方法,您可以重置页面大小。 |
10 | void setSlideOrder(XSLFSlide slide, int newIndex) 使用此方法,您可以重新排序幻灯片。 |
Slide
要在演示文稿中创建和管理幻灯片,请使用XSLFSlide类的方法。 下面提到了这一类的一些重要方法。
Class - XSLFSlide
Package - org.apache.poi.xslf.usermodel
S.No | 方法和描述 |
---|---|
1 | XSLFBackground getBackground() 返回XSLFBackground对象,该对象可用于检索幻灯片背景的颜色和锚点等详细信息。 您还可以使用此对象在幻灯片中绘制形状。 |
2 | XSLFSlideLayout getSlideLayout() 提供对当前幻灯片的XSLFSlideLayout对象的访问。 |
3 | XSLFSlideMaster getSlideMaster() 提供对当前幻灯片的幻灯片母版的访问。 |
4 | XSLFTheme getTheme() 返回当前幻灯片的XSLFTheme对象。 |
5 | java.lang.String getTitle() 返回当前幻灯片的标题。 |
6 | XSLFSlide importContent(XSLFSheet src) 将另一张幻灯片的内容复制到此幻灯片。 |
幻灯片大师
它是具有不同幻灯片布局的演示文稿的组成部分。 XSLFSlideMaster类使您可以访问它。 下面提到的是本课程的一些重要方法。
Class - XSLFSlideMaster
Package - org.apache.poi.xslf.usermodel
S.No | 方法和描述 |
---|---|
1 | XSLFBackground getBackground() 返回幻灯片母版的常见背景。 |
2 | XSLFSlideLayout getLayout(SlideLayout type) 返回XSLFSlideLayout对象。 |
3 | XSLFSlideLayout[] getSlideLayouts() 返回此幻灯片母版中的所有幻灯片布局。 |
幻灯片布局
POI库有一个名为XSLFSlideLayout的类,您可以使用它来管理幻灯片的布局。
Class - XSLFSlideLayout
Package - org.apache.poi.xslf.usermodel
S.No | 方法和描述 |
---|---|
1 | void copyLayout(XSLFSlide slide) 此方法将占位符从此布局复制到给定幻灯片。 |
文字段落
您可以使用XSLFTextParagraph类将内容写入幻灯片。 下面提到的是这个类的一些重要方法。
Class - XSLFTextParagraph
Package - org.apache.poi.xslf.usermodel
S.No | 方法和描述 |
---|---|
1 | XSLFTextRun addLineBreak() 在段落中插入换行符。 |
2 | XSLFTextRun addNewTextRun() 在段落中添加新的文本。 |
3 | void setBulletAutoNumber(ListAutoNumber scheme, int startAt) 将自动编号的项目符号点应用于段落。 |
4 | void setIndent(double value) 将缩进设置为段落中的文本。 |
5 | void setLeftMargin(double value) 此方法用于添加段落的左边距。 |
6 | void setLineSpacing(double linespacing) 此方法用于设置段落中的行间距。 |
7 | void setTextAlign(TextAlign align) 此方法用于设置要设置为段落的对齐方式。 |
文字运行
这是文本正文中文本分离的最低级别。 您有XSLFTextRun类来管理段落的文本运行。 下面提到的是这个类的一些重要方法。
Class - XSLFTextParagraph
Package - org.apache.poi.xslf.usermodel
S.No | 方法和描述 |
---|---|
1 | XSLFHyperlink createHyperlink() 在演示文稿中创建超链接。 |
2 | XSLFHyperlink getHyperlink() 此方法用于获取超链接。 |
3 | java.lang.String getText() 以Java字符串形式返回此Text节点的值。 |
4 | void setBold(boolean bold) 此方法用于以粗体显示文本。 |
5 | void setCharacterSpacing(double spc) 设置文本运行中字符之间的间距。 |
6 | void setFontColor(java.awt.Color color) 设置文本的字体颜色。 |
7 | void setFontSize(double fontSize) 设置文本的字体大小。 |
8 | void setItalic(boolean italic) 此方法用于使段落斜体。 |
9 | void setStrikethrough(boolean strike) 此方法用于将一行文本格式化为删除线文本。 |
10 | void setSubscript(boolean flag) 此方法用于将文本格式化为下标。 |
11 | void setSuperscript(boolean flag) 此方法用于将此运行中的文本格式化为上标。 |
12 | void setText(java.lang.String text) 此方法用于设置运行中的文本。 |
13 | void setUnderline(boolean underline) 此方法用于在文本运行中为文本加下划线。 |
文字形状
在PPT中,我们有可以在其中保存文本的形状。 我们可以使用XSLFTextShape类来管理它们。 下面提到的是本课程的一些重要方法。
Class - XSLFTextShape
Package - org.apache.poi.xslf.usermodel
S.No | 方法和描述 |
---|---|
1 | void setPlaceholder(Placeholder placeholder) 使用此方法,您可以选择占位符。 |
2 | Placeholder getTextType() 返回当前占位符的类型。 |
3 | void clearText() 清除当前文本形状的文本区域。 |
4 | XSLFTextParagraph addNewTextParagraph() 将新段落运行添加到形状。 |
5 | void drawContent(java.awt.Graphics2D graphics) 此方法允许您在幻灯片上绘制任何内容。 |
超链接 (HyperLink)
POI库有一个名为XSLFHyperlink的类,您可以使用该类在演示文稿中创建超链接。 下面提到的是本课程的一些重要方法。
Class - XSLFHyperlink
Package - org.apache.poi.xslf.usermodel
S.No | 方法和描述 |
---|---|
1 | java.net.URI getTargetURL() 返回演示文稿幻灯片中存在的URL。 |
2 | void setAddress(java.lang.String address) 此方法用于将地址设置为URL。 |
3 | void setAddress(XSLFSlide slide) 将地址设置为演示文稿幻灯片中的URL。 |
Apache POI PPT - Presentation
通常,我们使用MS-PowerPoint来创建演示文稿。 现在让我们看看如何使用Java创建演示文稿。 完成本章后,您将能够使用Java程序创建新的MS-PowerPoint演示文稿并打开现有的PPT。
创建空演示文稿
要创建一个空的表示,您必须实例化org.poi.xslf.usermodel包的XMLSlideShow类 -
XMLSlideShow ppt = new XMLSlideShow();
使用FileOutputStream类将更改保存到PPT文档 -
File file = new File("C://POIPPT//Examples//example1.pptx");
FileOutputStream out = new FileOutputStream(file);
ppt.write(out);
以下是创建空白MS-PowerPoint演示文稿的完整程序。
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
public class CreatePresentation {
public static void main(String args[]) throws IOException {
//creating a new empty slide show
XMLSlideShow ppt = new XMLSlideShow();
//creating an FileOutputStream object
File file = new File("example1.pptx");
FileOutputStream out = new FileOutputStream(file);
//saving the changes to a file
ppt.write(out);
System.out.println("Presentation created successfully");
out.close()
}
}
将上述Java代码保存为CreatePresentation.java ,然后从命令提示符编译并执行它,如下所示 -
$javac CreatePresentation.java
$java CreatePresentation
如果系统环境配置了POI库,它将编译并执行以在当前目录中生成名为example1.pptx的空白PPT文件,并在命令提示符下显示以下输出 -
Presentation created successfully
空白PowerPoint文档如下所示 -

编辑现有演示文稿
要打开现有演示文稿,请实例化XMLSlideShow类并将要编辑的文件的FileInputStream对象作为XMLSlideShow构造函数的参数传递。
File file = new File(“C://POIPPT//Examples//example1.pptx”);
FileInputstream inputstream = new FileInputStream(file);
XMLSlideShow ppt = new XMLSlideShow(inputstream);
您可以使用org.poi.xslf.usermodel包中的XMLSlideShow类的createSlide()方法将幻灯片添加到演示文稿中。
XSLFSlide slide1 = ppt.createSlide();
以下是打开幻灯片并将幻灯片添加到现有PPT的完整程序 -
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 EditPresentation {
public static void main(String ar[]) throws IOException {
//opening an existing slide show
File file = new File("example1.pptx");
FileInputStream inputstream = new FileInputStream(file);
XMLSlideShow ppt = new XMLSlideShow(inputstream);
//adding slides to the slodeshow
XSLFSlide slide1 = ppt.createSlide();
XSLFSlide slide2 = ppt.createSlide();
//saving the changes
FileOutputStream out = new FileOutputStream(file);
ppt.write(out);
System.out.println("Presentation edited successfully");
out.close();
}
}
将上述Java代码保存为EditPresentation.java ,然后从命令提示符编译并执行它,如下所示 -
$javac EditPresentation.java
$java EditPresentation
它将编译并执行以生成以下输出 -
slides successfully added
带有新添加幻灯片的输出PPT文档如下所示 -

将幻灯片添加到PPT后,您可以在幻灯片上添加,执行,读取和写入操作。
Apache POI PPT - Slide Layouts
在上一章中,您已经了解了如何创建空幻灯片以及如何向其添加幻灯片。 在本章中,您将学习如何获取可用幻灯片列表,以及如何创建具有不同布局的幻灯片。
可用的幻灯片布局
PowerPoint演示文稿具有幻灯片布局,您可以选择所需的布局来编辑幻灯片。 首先,让我们找出所有可用幻灯片布局的列表。
有不同的幻灯片母版,在每个幻灯片母版中,有几个幻灯片布局。
您可以使用XMLSlideShow类的getSlideMasters()方法获取幻灯片母版的列表。
您可以使用XSLFSlideMaster类的getSlideLayouts()方法从每个幻灯片母版中获取幻灯片布局列表。
您可以使用XSLFSlideLayout类的getType()方法从布局对象中获取幻灯片布局的名称。
Note - 所有这些类都属于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 ,然后从命令提示符编译并执行它,如下所示 -
$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中创建幻灯片。 按照下面给出的步骤 -
Step 1 - 通过实例化XMLSlideShow类创建一个空的表示,如下所示。
XMLSlideShow ppt = new XMLSlideShow();
Step 2 - 使用getSlideMasters()方法获取幻灯片母版列表。 然后,使用索引选择所需的幻灯片母版,如下所示。
XSLFSlideMaster slideMaster = ppt.getSlideMasters()[0];
这里我们得到默认的幻灯片母版,它位于幻灯片母版数组的第 0 个位置。
Step 3 - 使用XSLFSlideMaster类的getLayout()方法获取所需的布局。 此方法接受一个参数,您必须传递SlideLayoutclass一个静态变量,该变量表示我们所需的布局。 这个类中有几个变量,每个变量代表一个幻灯片布局。
下面给出的代码片段显示了如何创建标题布局 -
XSLFSlideLayout titleLayout = slideMaster.getLayout(SlideLayout.TITLE);
Step 4 - 通过将幻灯片布局对象作为参数传递来创建新幻灯片。
XSLFSlide slide = ppt.createSlide(titleLayout);
Step 5 - 使用XSLFSlide类的getPlaceholder()方法选择占位符。 此方法接受整数参数。 通过向它传递0 ,您将获得XSLFTextShape对象,使用该对象可以访问幻灯片的标题文本区域。 使用setText()方法设置标题,如下所示。
XSLFTextShape title1 = slide.getPlaceholder(0);
//setting the title init
title1.setText("IOWIKI");
以下是在演示文稿中创建带有标题布局的幻灯片的完整程序 -
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("IOWIKI");
//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,然后从命令提示符编译并执行它,如下所示 -
$javac TitleLayout.java
$java TitleLayout
它将编译并执行以生成以下输出。
slide created successfully
新添加的标题布局幻灯片的PPT文档如下所示 -

标题和内容布局
让我们使用标题和内容布局在PPT中创建幻灯片。 请按照以下步骤操作。
Step 1 - 通过实例化XMLSlideShow类创建一个空的表示,如下所示。
XMLSlideShow ppt = new XMLSlideShow();
Step 2 - 使用getSlideMasters()方法获取幻灯片母版列表。 使用索引选择所需的幻灯片母版,如下所示。
XSLFSlideMaster slideMaster = ppt.getSlideMasters()[0];
这里我们得到默认的幻灯片母版,它位于幻灯片母版数组的第0个位置。
Step 3 - 使用XSLFSlideMaster类的getLayout()方法获取所需的布局。 此方法接受一个参数,您必须传递SlideLayout类的静态变量之一,该变量表示我们所需的布局。 此类中有几个变量代表幻灯片布局。
以下代码段显示了如何创建标题和内容布局 -
XSLFSlideLayout contentlayout = slideMaster.getLayout(SlideLayout.TITLE_AND_CONTENT);
Step 4 - 通过将幻灯片布局对象作为参数传递来创建新幻灯片。
XSLFSlide slide = ppt.createSlide(SlideLayout.TITLE_AND_CONTENT);
Step 5 - 使用XSLFSlide类的getPlaceholder()方法选择占位符。 此方法接受整数参数。 通过向它传递1 ,您将获得XSLFTextShape对象,使用该对象可以访问幻灯片的内容区域。 使用setText()方法设置标题,如下所示。
XSLFTextShape title1 = slide1.getPlaceholder(1);
//setting the title init
title1.setText("Introduction");
Step 6 - 使用XSLFTextShape类的clearText()方法清除幻灯片中的现有文本。
body.clearText();
Step 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()[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文档如下所示 -

同样,您也可以创建具有不同布局的幻灯片。
Apache POI PPT - Slide Management
完成本章后,您将能够在幻灯片上删除,重新排序和执行读写操作。
更换幻灯片
我们可以使用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
以下是更改幻灯片大小之前演示文稿的快照 -

更改尺寸后,幻灯片显示如下 -

重新排序幻灯片
您可以使用setSlideOrder()方法设置幻灯片顺序。 下面给出了设置幻灯片顺序的过程。
打开现有的PPT文档,如下所示 -
File file = new File("C://POIPPT//Examples//example1.pptx");
XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));
使用getSlides()方法获取幻灯片,如下所示 -
XSLFSlide[] slides = ppt.getSlides();
从幻灯片数组中选择一张幻灯片,并使用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 ,然后从命令提示符处编译并执行它,如下所示 -
$javac ReorderSlide.java
$java ReorderSlide
它将编译并执行以生成以下输出。
Reordering of the slides is done
以下是重新排序幻灯片之前演示文稿的快照 -

重新排序幻灯片后,演示文稿如下所示。 在这里,我们选择了带有图像的幻灯片并将其移至顶部。

删除幻灯片
您可以使用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
下面的快照是删除幻灯片之前的演示文稿 -

删除幻灯片后,演示文稿如下所示 -

Apache POI PPT - Images
在本章中,您将学习如何将图像添加到PPT以及如何从中读取图像。
添加图片
您可以使用createPicture()方法将图像添加到演示文稿中。 此方法以字节数组格式接受图像。 因此,您必须创建要添加到演示文稿的图像的字节数组。
按照给定的步骤将图像添加到演示文稿中。 使用XMLSlideShow创建一个空幻灯片,如下所示 -
XMLSlideShow ppt = new XMLSlideShow();
使用createSlide()在其中创建一个空的演示文稿。
XSLFSlide slide = ppt.createSlide();
读取要添加的图像文件,并使用IOUtils类的IOUtils.toByteArray()将其转换为字节数组,如下所示 -
//reading an image
File image = new File("C://POIPPT//boy.jpg");
//converting it into a byte array
byte[] picture = IOUtils.toByteArray(new FileInputStream(image));
使用addPicture()将图像添加到演示文稿中。 此方法接受两个变量:要添加的图像的字节数组格式和表示图像文件格式的静态变量。 addPicture()方法的用法如下所示 -
int idx = ppt.addPicture(picture, XSLFPictureData.PICTURE_TYPE_PNG);
使用createPicture()将图像嵌入到幻灯片中,如下所示 -
XSLFPictureShape pic = slide.createPicture(idx);
以下是在演示文稿中向幻灯片添加图像的完整程序 -
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.util.IOUtils;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFPictureData;
import org.apache.poi.xslf.usermodel.XSLFPictureShape;
import org.apache.poi.xslf.usermodel.XSLFSlide;
public class AddingImage {
public static void main(String args[]) throws IOException {
//creating a presentation
XMLSlideShow ppt = new XMLSlideShow();
//creating a slide in it
XSLFSlide slide = ppt.createSlide();
//reading an image
File image = new File("C://POIPPT//boy.jpg");
//converting it into a byte array
byte[] picture = IOUtils.toByteArray(new FileInputStream(image));
//adding the image to the presentation
int idx = ppt.addPicture(picture, XSLFPictureData.PICTURE_TYPE_PNG);
//creating a slide with given picture on it
XSLFPictureShape pic = slide.createPicture(idx);
//creating a file object
File file = new File("addingimage.pptx");
FileOutputStream out = new FileOutputStream(file);
//saving the changes to a file
ppt.write(out)
System.out.println("image added successfully");
out.close();
}
}
将上述Java代码保存为AddingImage.java ,然后从命令提示符编译并执行它,如下所示 -
$javac AddingImage.java
$java AddingImage
它将编译并执行以生成以下输出 -
reordering of the slides is done
使用新添加的带图像的幻灯片的演示如下 -

阅读图像
您可以使用XMLSlideShow类的getAllPictures()方法获取所有图片的数据。 以下程序从演示文稿中读取图像 -
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.XSLFPictureData;
public class Readingimage {
public static void main(String args[]) throws IOException {
//open an existing presentation
File file = new File("addingimage.pptx");
XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));
//reading all the pictures in the presentation
for(XSLFPictureData data : ppt.getAllPictures()){
byte[] bytes = data.getData();
String fileName = data.getFileName();
int pictureFormat = data.getPictureType();
System.out.println("picture name: " + fileName);
System.out.println("picture format: " + pictureFormat);
}
//saving the changes to a file
FileOutputStream out = new FileOutputStream(file);
ppt.write(out);
out.close();
}
}
将上述Java代码保存为Readingimage.java ,然后从命令提示符编译并执行它,如下所示 -
$javac Readingimage.java
$java Readingimage
它将编译并执行以生成以下输出 -
picture name: image1.png
picture format: 6
Apache POI PPT - Creating Hyperlinks
在本章中,您将学习如何在演示文稿中创建超链接。
创建超链接
您可以使用XSLFTextRun类的createHyperlink()方法读取演示文稿中的超链接。 按照下面给出的步骤在演示文稿中创建超链接。
使用XMLSlideShow类创建一个空的演示文稿,如下所示 -
XMLSlideShow ppt = new XMLSlideShow();
创建一个空幻灯片,并使用正文和内容布局创建幻灯片的文本框和正文。
//create an empty presentation
XSLFSlideMaster slideMaster = ppt.getSlideMasters()[0];
//creating a slide with title and content layout
XSLFSlideLayout slidelayout = slideMaster.getLayout(SlideLayout.TITLE_AND_CONTENT);
XSLFSlide slide = ppt.createSlide(slidelayout);
//selection of body place holder
XSLFTextShape body = slide.getPlaceholder(1);
//clear the existing text in the slide
body.clearText();
创建一个文本运行对象并将文本设置为它,如下所示 -
XSLFTextRun textRun = body.addNewTextParagraph().addNewTextRun();
textRun.setText("IOWIKI");
使用XSLFTextRun类的createHyperlink()方法创建超链接,如下所示 -
XSLFHyperlink link = textRun.createHyperlink();
使用XSLFHyperlink类的setAddress()方法将链接地址设置为超链接,如下所示 -
link.setAddress("http://www.iowiki.com/");
以下是在演示文稿中创建超链接的完整程序 -
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.XSLFHyperlink;
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.XSLFTextRun;
import org.apache.poi.xslf.usermodel.XSLFTextShape;
public class CreatingHyperlinks {
public static void main(String args[]) throws IOException {
//create an empty 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 body = slide.getPlaceholder(1);
//clear the existing text in the slid
body.clearText();
//adding new paragraph
XSLFTextRun textRun = body.addNewTextParagraph().addNewTextRun();
//setting the text
textRun.setText("IOWIKI");
//creating the hyperlink
XSLFHyperlink link = textRun.createHyperlink();
//setting the link address
link.setAddress("http://www.iowiki.com/");
//create the file object
File file = new File("hyperlink.pptx");
FileOutputStream out = new FileOutputStream(file);
//save the changes in a file
ppt.write(out);
System.out.println("slide cretated successfully");
out.close();
}
}
将上述Java代码保存为CreatingHyperlinks.java ,然后从命令提示符编译并执行它,如下所示 -
$javac CreatingHyperlinks.java
$java CreatingHyperlinks
它将编译并执行以生成以下输出 -
slide cretated successfully
新添加的幻灯片在其正文中带有超链接,如下所示 -

Apache POI PPT - Reading Shapes
您可以使用XSLFShape类的getShapeName()方法获取演示文稿中使用的形状数量。 以下是从演示文稿中读取形状的程序 -
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.XSLFShape;
import org.apache.poi.xslf.usermodel.XSLFSlide;
public class ReadingShapes {
public static void main(String args[]) throws IOException {
//creating a slideshow
File file = new File("shapes.pptx");
XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));
//get slides
XSLFSlide[] slide = ppt.getSlides();
//getting the shapes in the presentation
System.out.println("Shapes in the presentation:");
for (int i = 0; i < slide.length; i++){
XSLFShape[] sh = slide[i].getShapes();
for (int j = 0; j < sh.length; j++){
//name of the shape
System.out.println(sh[j].getShapeName());
}
}
FileOutputStream out = new FileOutputStream(file);
ppt.write(out);
out.close();
}
}
将上述Java代码保存为ReadingShapes.java ,然后从命令提示符编译并执行它,如下所示 -
$javac ReadingShapes.java
$java ReadingShapes
它将编译并执行以生成以下输出。
Shapes in the presentation:
Rectangle 1
Oval 1
Isosceles Triangle 1
新添加的各种形状的幻灯片如下所示 -

Apache POI PPT - Formatting Text
可以使用XSLFTextRun类的方法格式化演示文稿中的文本。 为此,您必须通过选择其中一个幻灯片布局来创建XSLFTextRun类对象,如下所示 -
//create the empty 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 body = slide.getPlaceholder(1);
//clear the existing text in the slide
body.clearText();
//adding new paragraph
XSLFTextParagraph paragraph = body.addNewTextParagraph();
//creating text run object
XSLFTextRun run = paragraph.addNewTextRun();
您可以使用setFontSize()设置演示文稿中文本的字体大小。
run.setFontColor(java.awt.Color.red);
run.setFontSize(24);
以下代码段显示如何将不同的格式样式(粗体,斜体,下划线,删除线)应用于演示文稿中的文本。
//change the text into bold format
run.setBold(true);
//change the text it to italic format
run.setItalic(true)
// strike through the text
run.setStrikethrough(true);
//underline the text
run.setUnderline(true);
要在段落之间使用换行符,请使用XSLFTextParagraph类的addLineBreak() ,如下所示 -
paragraph.addLineBreak();
以下是使用上述所有方法格式化文本的完整程序 -
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.XSLFTextParagraph;
import org.apache.poi.xslf.usermodel.XSLFTextRun;
import org.apache.poi.xslf.usermodel.XSLFTextShape;
public class TextFormating {
public static void main(String args[]) throws IOException {
//creating an empty 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 body = slide.getPlaceholder(1);
//clear the existing text in the slide
body.clearText();
//adding new paragraph
XSLFTextParagraph paragraph = body.addNewTextParagraph();
//formatting line 1
XSLFTextRun run1 = paragraph.addNewTextRun();
run1.setText("This is a colored line");
//setting color to the text
run1.setFontColor(java.awt.Color.red);
//setting font size to the text
run1.setFontSize(24);
//moving to the next line
paragraph.addLineBreak();
//formatting line 2
XSLFTextRun run2 = paragraph.addNewTextRun();
run2.setText("This is a bold line");
run2.setFontColor(java.awt.Color.CYAN);
//making the text bold
run2.setBold(true);
paragraph.addLineBreak();
//formatting line 3
XSLFTextRun run3 = paragraph.addNewTextRun();
run3.setText(" This is a striked line");
run3.setFontSize(12);
//making the text italic
run3.setItalic(true);
//strike through the text
run3.setStrikethrough(true);
paragraph.addLineBreak();
//formatting line 4
XSLFTextRun run4 = paragraph.addNewTextRun();
run4.setText(" This an underlined line");
run4.setUnderline(true);
//underlining the text
paragraph.addLineBreak();
//creating a file object
File file = new File(“TextFormat.pptx”);
FileOutputStream out = new FileOutputStream(file);
//saving the changes to a file
ppt.write(out);
out.close();
}
}
将上面的代码保存为TextFormating.java ,然后从命令提示符编译并执行它,如下所示 -
$javac TextFormating.java
$java TextFormating
它将编译并执行以生成以下输出 -
Formatting completed successfully
带有格式化文本的幻灯片如下所示 -

Apache POI PPT - Merging
您可以使用XMLSlideShow类的importContent()方法合并多个演示文稿。 以下是合并两个演示文稿的完整程序 -
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 MergingMultiplePresentations {
public static void main(String args[]) throws IOException {
//creating empty presentation
XMLSlideShow ppt = new XMLSlideShow();
//taking the two presentations that are to be merged
String file1 = "presentation1.pptx";
String file2 = "presentation2.pptx";
String[] inputs = {file1, file2};
for(String arg : inputs){
FileInputStream inputstream = new FileInputStream(arg);
XMLSlideShow src = new XMLSlideShow(inputstream);
for(XSLFSlide srcSlide : src.getSlides()) {
//merging the contents
ppt.createSlide().importContent(srcSlide);
}
}
String file3 = "combinedpresentation.pptx";
//creating the file object
FileOutputStream out = new FileOutputStream(file3);
// saving the changes to a file
ppt.write(out);
System.out.println("Merging done successfully");
out.close();
}
}
将上面的代码保存为MergingMultiplePresentations.java ,然后从命令提示符编译并执行它,如下所示 -
$javac MergingMultiplePresentations.java
$java MergingMultiplePresentations
它将编译并执行以生成以下输出 -
Merging done successfully
以下快照显示了第一个演示文稿 -

以下快照显示第二个演示文稿 -

下面给出了合并两张幻灯片后程序的输出。 在这里,您可以看到合并在一起的早期幻灯片的内容。

Apache POI PPT - PPT to Image
您可以将演示文稿转换为图像文件。 以下程序显示了如何进行操作。
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
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 PptToImage {
public static void main(String args[]) throws IOException {
//creating an empty presentation
File file=new File("pptToImage.pptx");
XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));
//getting the dimensions and size of the slide
Dimension pgsize = ppt.getPageSize();
XSLFSlide[] slide = ppt.getSlides();
BufferedImage img = null;
for (int i = 0; i < slide.length; i++) {
img = new BufferedImage(pgsize.width, pgsize.height,BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = img.createGraphics();
//clear the drawing area
graphics.setPaint(Color.white);
graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height));
//render
slide[i].draw(graphics);
}
//creating an image file as output
FileOutputStream out = new FileOutputStream("ppt_image.png");
javax.imageio.ImageIO.write(img, "png", out);
ppt.write(out);
System.out.println("Image successfully created");
out.close();
}
}
将上述Java代码保存为PpttoPNG.java ,然后从命令提示符处编译并执行它,如下所示 -
$javac PpttoPNG.java
$java PpttoPNG
它将编译并执行以生成以下输出 -
Image created successfully
以下快照显示了作为输入提供的演示文稿 -

下面给出了在指定位置创建的图像的快照。
