本文共 2886 字,大约阅读时间需要 9 分钟。
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; } } }
本文转自yjflinchong 51CTO博客,原文链接:http://blog.51cto.com/yjflinchong/1165109,如需转载请自行联系原作者