java转换ppt,ppt转成图片,获取备注,获取文本

本文介绍了一个Java程序,该程序能够将PPT文件转换为一系列图片,并从中提取文本信息和备注。通过使用Apache POI库,程序实现了对PPT文件的读取、文本提取以及图像导出等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java转换ppt,ppt转成图片,获取备注,获取文本

ppt获取备注代码:

if(slide[i].getNotesSheet()!=null&&slide[i].getNotesSheet().getTextRuns()!=null){
//获取第一个备注
System.out.println("备注:" + slide[i].getNotesSheet().getTextRuns()[0].getText());
}

ppt获取每页的文本信息列表:

// 获取文本列表
System.out.println(rtruns[l].getText());


所有的详细代码如下:

import java.awt.Dimension;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;

import org.apache.poi.hslf.model.TextRun;
import org.apache.poi.hslf.record.Slide;
import org.apache.poi.hslf.usermodel.RichTextRun;
import org.apache.poi.hslf.usermodel.SlideShow;

public class PPTtoImage {
public static void main(String[] args) {
// 读入PPT文件
File file = new File("F:/20110618.ppt");
doPPTtoImage(file);
}

public static boolean doPPTtoImage(File file) {
boolean isppt = checkFile(file);
if (!isppt) {
System.out.println("你指定的文件不是ppt文档!");
return false;
}
try {

FileInputStream is = new FileInputStream(file);
SlideShow ppt = new SlideShow(is);
is.close();
Dimension pgsize = ppt.getPageSize();
org.apache.poi.hslf.model.Slide[] slide = ppt.getSlides();
for (int i = 0; i < slide.length; i++) {
System.out.print("第" + i + "页。");
if(slide[i].getNotesSheet()!=null&&slide[i].getNotesSheet().getTextRuns()!=null){
//获取第一个备注
System.out.println("备注:" + slide[i].getNotesSheet().getTextRuns()[0].getText());
}
TextRun[] truns = slide[i].getTextRuns();
for (int k = 0; k < truns.length; k++) {
RichTextRun[] rtruns = truns[k].getRichTextRuns();
for (int l = 0; l < rtruns.length; l++) {
rtruns[l].setFontIndex(1);
rtruns[l].setFontName("宋体");
// 获取文本列表
System.out.println(rtruns[l].getText());
}
}
BufferedImage img = new BufferedImage(pgsize.width,
pgsize.height, BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = img.createGraphics();
graphics.setPaint(Color.white);
graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width,
pgsize.height));
slide[i].draw(graphics);
// 这里设置图片的存放路径和图片的格式(jpeg,png,bmp等等),注意生成文件路径
FileOutputStream out = new FileOutputStream("F:/test/pict_"
+ (i + 1) + ".jpeg");
javax.imageio.ImageIO.write(img, "jpeg", out);
out.close();
}
System.out.println("ok");
return true;
} catch (FileNotFoundException e) {
System.out.println(e);
} catch (IOException e) {
e.printStackTrace();
}
return false;
}

// function 检查文件是否为PPT
public static boolean checkFile(File file) {
boolean isppt = false;
String filename = file.getName();
String suffixname = null;
if (filename != null && filename.indexOf(".") != -1) {
suffixname = filename.substring(filename.indexOf("."));
if (suffixname.equals(".ppt")) {
isppt = true;
}
return isppt;
} else {
return isppt;
}
}
}

 

肯定知道-精品推荐:

1、一个土八路凭什么让冈村宁次都忌惮?

2、二战时期仅有的国军开坦克追日本兵,都压成肉酱了!!!

3、军事奇迹:看一书生7000人马横扫大半个中国的奇迹

4、国军悍将创造军事奇迹后为什么会投降日军?

5、国军战神曹锡,一人消灭日军一个大队!

6、flash无法覆盖的问题_三种办法可以解决flash覆盖其他元素

7、南海石油30年疯狂开采,到底还剩多少?

8、送礼国家也收税?莫不是都疯啦?

9、古代第一美女的悲惨结局

10、中国空军光棍节轰炸日本航母“龙骧”号

11、日本本土史上第一次空袭竟是中国轰炸机

12、中原大战中老将的王牌战将为何被害?

13、刷流量软件-免费刷流量工具-软件

14、免费刷流量-软件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值