如何使用Java讀取PPT文本和圖片
前言
本篇文章將介紹通過(guò)Java程序來(lái)讀取PPT幻燈片中的文本及圖片的方法。讀取圖片時(shí),可讀取文檔中的所有圖片,也可以讀取指定幻燈片當(dāng)中的圖片。
工具:
- Free Spire.Presentation for Java(免費(fèi)版)
- IntelliJ IDEA
Jar文件獲取及導(dǎo)入:
方法1:官網(wǎng)下載jar文件包。下載后,解壓文件,并在java程序中導(dǎo)入lib文件夾下的Spire.Presentation.jar文件。
方法2:可通過(guò)maven倉(cāng)庫(kù)導(dǎo)入到maven項(xiàng)目。
Java代碼示例
測(cè)試文檔:

【示例1】讀取PPT中的文本
import com.spire.presentation.IAutoShape;
import com.spire.presentation.ISlide;
import com.spire.presentation.ParagraphEx;
import com.spire.presentation.Presentation;
import java.io.FileWriter;
public class ExtractText {
public static void main(String[]args) throws Exception{
//加載測(cè)試文檔
Presentation ppt = new Presentation();
ppt.loadFromFile("test.pptx");
StringBuilder buffer = new StringBuilder();
//遍歷文檔中的幻燈片,提取文本
for (Object slide : ppt.getSlides()) {
for (Object shape : ((ISlide) slide).getShapes()) {
if (shape instanceof IAutoShape) {
for (Object tp : ((IAutoShape) shape).getTextFrame().getParagraphs()) {
buffer.append(((ParagraphEx) tp).getText());
}
}
}
}
//保存到文本文件
FileWriter writer = new FileWriter("ExtractText.txt");
writer.write(buffer.toString());
writer.flush();
writer.close();
}
}
文本讀取結(jié)果:

【示例2】讀取PPT中的所有圖片
import com.spire.presentation.Presentation;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
public class ExtractAllImgs {
public static void main(String[] args) throws Exception {
//加載文檔
Presentation ppt = new Presentation();
ppt.loadFromFile("test.pptx");
//提取文檔中的所有圖片
for (int i = 0; i < ppt.getImages().getCount(); i++) {
BufferedImage image = ppt.getImages().get(i).getImage();
ImageIO.write(image, "PNG", new File(String.format("AllImage-%1$s.png", i)));
}
}
}
【示例3】讀取指定幻燈片中的圖片
import com.spire.presentation.*;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
public class ExtractImgsInSpecifiedSlide {
public static void main(String[]args) throws Exception{
//加載文檔
Presentation ppt = new Presentation();
ppt.loadFromFile("test.pptx");
//獲取第2張幻燈片
ISlide slide = ppt.getSlides().get(1);
//提取圖片
for(int i = 0; i< slide.getShapes().getCount(); i++)
{
IShape shape = slide.getShapes().get(i);
if(shape instanceof SlidePicture)
{
SlidePicture pic = (SlidePicture) shape;
BufferedImage image = pic.getPictureFill().getPicture().getEmbedImage().getImage();
ImageIO.write(image, "PNG", new File(String.format("extractImageinslide-%1$s.png", i)));
}
if(shape instanceof PictureShape)
{
PictureShape ps = (PictureShape) shape;
BufferedImage image = ps.getEmbedImage().getImage();
ImageIO.write(image, "PNG", new File(String.format("extractImageinslide-%1$s.png", i)));
}
}
}
}
圖片讀取結(jié)果:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
簡(jiǎn)單了解java類的初始化以及類的實(shí)例化
這篇文章主要介紹了簡(jiǎn)單了解java類的初始化以及類的實(shí)例化,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07
解析Springboot集成Tile38客戶端之Set命令實(shí)現(xiàn)示例
這篇文章主要為大家介紹了解析Springboot集成Tile38客戶端之Set命令實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08
一口氣說(shuō)出Java 6種延時(shí)隊(duì)列的實(shí)現(xiàn)方法(面試官也得服)
這篇文章主要介紹了一口氣說(shuō)出Java 6種延時(shí)隊(duì)列的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
java實(shí)現(xiàn)十六進(jìn)制字符unicode與中英文轉(zhuǎn)換示例
當(dāng)需要對(duì)一個(gè)unicode十六進(jìn)制字符串進(jìn)行編碼時(shí),首先做的應(yīng)該是確認(rèn)字符集編碼格式,在無(wú)法快速獲知的情況下,通過(guò)一下的str4all方法可以達(dá)到這一目的2014-02-02
SpringBoot+VUE實(shí)現(xiàn)數(shù)據(jù)表格的實(shí)戰(zhàn)
本文將使用VUE+SpringBoot+MybatisPlus,以前后端分離的形式來(lái)實(shí)現(xiàn)數(shù)據(jù)表格在前端的渲染,具有一定的參考價(jià)值,感興趣的可以了解一下2021-08-08
java框架基礎(chǔ)之SPI機(jī)制實(shí)現(xiàn)及源碼解析
這篇文章主要為大家介紹了java框架基礎(chǔ)之SPI機(jī)制實(shí)現(xiàn)及源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
從0開始教你開發(fā)一個(gè)springboot應(yīng)用
這篇文章主要為大家介紹了從0開始開發(fā)一個(gè)springboot應(yīng)用教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05

