java把图片导出ppt_ppt转图片程序(java实现)
所需要的jar包如下,可自行从maven官网上下载
所需jar包图
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.util.ArrayList;
import java.util.List;
import javax.imageio.ImageIO;
import org.apache.commons.logging.Log;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFShape;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFTextParagraph;
import org.apache.poi.xslf.usermodel.XSLFTextRun;
import org.apache.poi.xslf.usermodel.XSLFTextShape;
public class Test {
public static int doPPT2007toImage(File pptFile,File imgFile,List list) {
FileInputStream is = null ;
int imgCount = 0;
try {
is = new FileInputStream(pptFile);
XMLSlideShow xmlSlideShow = new XMLSlideShow(is);
is.close();
// 获取大小
Dimension pgsize = xmlSlideShow.getPageSize();
// 获取幻灯片
XSLFSlide[] slides = xmlSlideShow.getSlides();
imgCount = slides.length;
for (int i = 0 ; i < slides.length ; i++) {
// 解决乱码问题
XSLFShape[] shapes = slides[i].getShapes();
for (XSLFShape shape : shapes) {
if (shape instanceof XSLFTextShape) {
XSLFTextShape sh = (XSLFTextShape) shape;
List textParagraphs = sh.getTextParagraphs();
for (XSLFTextParagraph xslfTextParagraph : textParagraphs) {
List textRuns = xslfTextParagraph.getTextRuns();
for (XSLFTextRun xslfTextRun : textRuns) {
xslfTextRun.setFontFamily("宋体");
}
}
}
}
//根据幻灯片大小生成图片
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));
// 最核心的代码
slides[i].draw(graphics);
//图片将要存放的路径
String absolutePath = imgFile.getAbsolutePath()+"/"+ (i + 1) + ".jpg";
File jpegFile = new File(absolutePath);
// 图片路径存放
list.add((i + 1) + ".jpg");
//如果图片存在,则不再生成
if (jpegFile.exists()) {
continue;
}
// 这里设置图片的存放路径和图片的格式(jpeg,png,bmp等等),注意生成文件路径
FileOutputStream out = new FileOutputStream(jpegFile);
// 写入到图片中去
ImageIO.write(img, "jpeg", out);
out.close();
}
System.out.print("PPT转换成图片 成功!");
//log.error("PPT转换成图片 成功!");
return imgCount;
}
catch (Exception e) {
e.printStackTrace();
System.out.print("PPT转换成图片 发生异常!");
// log.error("PPT转换成图片 发生异常!", e);
}
return imgCount;
}
public static void main(String[] args) {
File ppt = new File("C:\\慧学.pptx");
File img = new File("C:\\2\\");
List list = new ArrayList();
System.out.println(doPPT2007toImage(ppt,img,list));
}
}
java把图片导出ppt_ppt转图片程序(java实现)相关推荐
- java实现word导出(带图片)
java实现word导出(带图片) 转载地址:https://www.jianshu.com/p/98ed03044fe1
- 3个方法轻松将图片导出Mac电脑照片程序
苹果设备中如果你开启了同步功能,用其他设备拍摄的照片,会自动同步到Mac电脑的照片程序里储存,这样方便我们再电脑上处理照片.那么,如何将照片导出Mac照片程序呢?下面分享3个方法. 方法一 1.打开M ...
- java 使用itext 导出pdf 控制图片的大小
在使用itext 导出pdf 的过程中,可能会遇到这样的需求,就是导出文字加图片.使用我们前面写的程序,确实是可以导出图片,如果针对于类似简历的需求,图片填充单元格,会满足效果,如下图所示: 但在实际 ...
- Java使用POi导出Excel(包含图片)
Java使用poi组件导出excel报表,能导出excel报表的还可以使用jxl组件,但jxl想对于poi功能有限,jxl应该不能载excel插入浮动层图片,poi能很好的实现输出excel各种功能, ...
- java freemarker word导出 文字加图片双重循环 (经历无数坑)
思路来源:https://blog.csdn.net/qq_41253573/article/details/83545536 本文章采用 freemarker 将word转xml再转ftl方法 引用 ...
- java 使用freemarker 导出word 和图片
前段时间写了一篇使用itext导出word的博客,并且在项目也是使用itext,我大概了写了2000行左右的样子,然后被经理否决了.最后还是要使用freemarker 模板导出word pom 文件: ...
- java如何获取手机号码_微信小程序+Java获取用户授权手机号码
前言 小程序内可以直接通过授权获取用户微信号绑定的手机号码或用户添加的其他手机号码,这样可以使得小程序在进行账户的身份可控上又提高了一步,那么应该如何来获取手机号码呢?这篇文章就和大家一起来研究一下. ...
- java上拉变量_「小程序JAVA实战」小程序页面的上拉下拉刷新(50)
前已经完成了小程序的列表展示,但是对于上拉和下拉刷新这个功能,其实跟小程序的生命周期有关系,一起回顾下完成,上拉和下拉刷新.源码:https://github.com/limingios/wxProg ...
- java利用poi导出excel功能-附带图片导出
java利用poi导出excel功能-附带图片导出 写在前面 最近刚离职,闲来无事,于是把上两家公司都有碰到过的需求但都没有去研究实现:即导出带图片的excel报表.于是就折腾了一下这个功能,研究出来 ...
- Java从零开始实现导出excel(一)
Java从零开始实现导出excel(一) java导出excel两种方式 使用easyExcel通过模板导出excel 1.快速创建工程 下面我就直接贴代码 注意事项: 新人博主,随笔记录.主要还是通 ...
最新文章
- python虚拟环境安装pyqt5_python虚拟环境安装pyqt5
- 分库分表就能无限扩容吗,解释得太好了!
- ASP.net中的validaterequest
- html制作棋盘,棋盘的制作方法
- Linux vi编辑器的使用
- 计算机运行一会内存占用巨大,Win8电脑程序占用很大内存怎么办?
- c++ 类内static成员初始化
- 奥鹏计算机基础18秋在线作业答案,18秋华师《计算机基础》在线作业1(标准答案).doc...
- Windows10系统下虚拟环境的安装与使用
- 如何只用一个小时定制一个行业AI 模型?
- 蓝桥杯 基础练习 特殊回文数
- 如何使用CommitMonitor工具监控 SVN
- 当网卡收到的包的目的地址是主机上另一个网卡的地址.arp总结
- nginx的负载均衡(centos7)
- python的contour怎么画虚线_Python+Matplotlib画contour图
- 循环控制语句--for循环
- 程序员面试快手后感慨:你们经历过绝望吗?三个面试官都是清华的
- 数据结构(Java实现)-详谈树与二叉树结构
- Code-Breaking Puzzles做题记录
- SWUST OJ 953: 单链表的删除操作的实现
热门文章
- Android 手机锁屏解锁后Activity走了onDestroy
- ps 命令 快捷键 知识点汇总
- 教你如何批量修改图片分辨率?
- 联想昭阳K22-80机器关闭或开启触摸板方法
- 单片机引脚浮空输入注意事项-STM32
- 大部分码农辛苦半辈子,还是做不了软件架构师,转行后只能碌碌无为一生?(这是一个交流贴欢迎讨论)
- k3服务器系统资源不足,金蝶k3云服务器已离线
- “此网页上的某个 Web 部件或 Web 表单控件无法显示或导入。找不到该类型,或该类型未注册为安全类型。”
- 有道词典java下载电脑版下载不了_有道词典电脑版
- 阿里巴巴的愿景,使命和价值观