poi 读取 ppt,并将内容转换成图片
2013-01-09 12:42
253 查看
package com.test; 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.Graphics2D; import java.awt.geom.Rectangle2D; import java.awt.image.BufferedImage; import org.apache.poi.hslf.model.TextRun; import org.apache.poi.hslf.usermodel.RichTextRun; import org.apache.poi.hslf.usermodel.SlideShow; public class PptReader { 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:/ppttest/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; } } }
需要的jar包: poi.jar和poi-scratchpad.jar
转自:http://yijianfengvip.blog.163.com/blog/static/175273432201152311960/
相关文章推荐
- lucent检索技术之创建索引:使用POI读取txt/word/excel/ppt/pdf内容
- 将PPT文件内容转换为图片放在Email邮件正文中发送
- java-poi3.17读取ppt文本和图片
- java/poi读取word,并替换word中的文本内容,向word中插入图片的操作
- java poi组件 读取word文档 替换文档 内容 图片
- 利用POI将PPT转换为图片
- java/poi读取word,并替换word中的文本内容,向word中插入图片的操作
- android 将图片内容解析成字节数组,将字节数组转换为ImageView可调用的Bitmap对象,图片缩放,把字节数组保存为一个文件,把Bitmap转Byt
- android 将图片内容解析成字节数组,将字节数组转换为ImageView可调用的Bitmap对象,图片缩放,把字节数组保存为一个文件,把Bitmap转Byte
- 关于如何把canvas中的内容转换为图片上传到服务器的操作过程
- 请教Ado.Net按文本读取CSV/Txt文件时,如何禁止将内容转换成数字
- POI读取Excel 各种特殊数字和类型的转换
- java 在MySQL中存储文件,读取文件(包括图片,word文档,excel表格,ppt,zip文件等)
- 【学习笔记】python读取json内容转换成excel格式
- POI之图片导出到PPT简单实例
- 使用POI读取excel文件内容
- glReadPixels读取buffer并转换成BMP图片
- PPT转换格式时,ppt每页大小和用户需求图片大小中的小问题
- asp如何读取新闻内容中的N张图片地址(转载)
- poi读取excel转对象,格式转换帮助类